300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > php实现兼容Unicode文字的字符串大小写转换strtolower()和strtoupper()

php实现兼容Unicode文字的字符串大小写转换strtolower()和strtoupper()

时间:2019-08-06 07:43:56

相关推荐

php实现兼容Unicode文字的字符串大小写转换strtolower()和strtoupper()

后端开发|php教程

php实现兼容Unicode文字的字符串大小写转换strtolower()和strtoupper()

后端开发-php教程

前言

比赛管理信息系统源码,ubuntu共享目录路径,tomcat安装后电脑卡顿,有臭味的爬虫,php程序员外包公司,绥芬河seo外包lzw

网上流传着这么一个腾讯笔试题:

android 家校通 源码,vscode文字环绕对齐,ubuntu页面闪动,tomcat运行中卡死,爬虫托运,php 使用linux,SEO要做价格词吗,jsp文学网站源码,cis设计模板lzw

PHP的strtolower()和strtoupper()函数在安装非中文系统的服务器下可能会导致将汉字转换为乱码,请写两个替代的函数实现兼容Unicode文字的字符串大小写转换。

信贷网站php免费系统源码,ubuntu 进程杀不死,tomcat的安装包名称,绿色爬虫龙,php被go替代了吗,seo系统权重lzw

举个例子,我们直接对中英文混排的字符串处理是会出乱码的,如:

php > $a = abc中华ABC;php > var_dump(strtoupper($a));string(12) "ABC??ō?ABC"php >

我们知道中文在 UTF8 编码里是由3个字符组成的,那么换个思路,我们可以把一个中文当成3个字符来处理,同理再换个思路,在一个把小写英文转换成大写英文的函数里,我们要处理的只有小写字母,那么我们就可以对一个字符串逐个字符进行处理,只处理小写字母,那么如何判断一个字符是小写字母呢,当然是用 ascii 码了,使用 linux 或者 mac os (实际上也为 linux 系统)的朋友可以直接使用命令 man ascii 查看字符 ascii 码对应值:

The decimal set: 0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel 8 bs9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 /48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 756 8 57 9 58 : 59 ; 6063 ?64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 del

由 ascii 表我们看出英文小写字母的ascii 值在 97 ~ 122 之间,由此可得出我们的程序:

= 97 && $v<= 122){ $v -= 32; } $r .= chr($v); } return $r;}$a = a中你继续F@#$%^&*(BMDJFDoalsdkfjasl;echo origin string:.$a."\n";echo esult string:;$r = mystrtoupper($a);var_dump($r);

输出结果 :

origin string:a中你继续F@#$%^&*(BMDJFDoalsdkfjaslresult string:string(39) "A中你继续F@#$%^&*(BMDJFDOALSDKFJASL"

大写转小写同理可得,不再赘述,完整两个方法的代码及使用,可下载:/detail/agangdi/8171599

当然了,编程是一门艺术,同一个功能有多种多样的实现方法,如果您有什么别的办法,可以尽情评论指教,如果读者觉得该方法有什么不妥之后,也可随时指正。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。