首页 UTF-8中文字符截取

UTF-8中文字符截取

举报
开通vip

UTF-8中文字符截取UTF-8中文字符截取 UTF-8中文截取函数 Published by Jesse 在中,用函数截取带有中文字符串的话,可能会出现乱码,这是因为中西文PHPsubstr() 一个字所占有的字节数不一样,而的长度参数是按照字节去算的。在编substrGB2312码时,一个中文占个字节,英文为个字节,而在编码当中,一个中文可能占有21UTF-8个或个字节,英文或半角标点占字节。231 为解决这个问题,我找了很多资料,最终找到这么一段文字: 编码的字符可能由个字节组成,具体数目可以由第一个字节判断出来。理论UT...

UTF-8中文字符截取
UTF-8中文字符截取 UTF-8中文截取函数 Published by Jesse 在中,用函数截取带有中文字符串的话,可能会出现乱码,这是因为中西文PHPsubstr() 一个字所占有的字节数不一样,而的长度参数是按照字节去算的。在编substrGB2312码时,一个中文占个字节,英文为个字节,而在编码当中,一个中文可能占有21UTF-8个或个字节,英文或半角标点占字节。231 为解决这个问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,我找了很多资料,最终找到这么一段文字: 编码的字符可能由个字节组成,具体数目可以由第一个字节判断出来。理论UTF-81~3 (上可能更长,但这里假设不超过个字节3) 第一个字节大于的,它与它之后的个字节一起组成一个字符2242UTF-8 第一个字节大于小于的,它与它之后的个字节组成一个字符1922241UTF-8 否则第一个字节本身就是一个英文字符(包括数字和一小部分标点符号)。 ,知道大概的原理,解决起来就轻松多了,于是写了以下函数用于的字符截取:OKUTF-8 PHP 代码 1.//UTF-8 字符串截取,仅限于 2. cut_str($str,$len) { function 3. (strlen($str) <= $len) $str; ifreturn 4. $n = 0; 5. $tempstr = ''; 6. ($i=0; $i<$len; $i++) { for 7. (ord(substr($str,$n,1)) > 224) { if 8. $tempstr .= substr($str,$n,3); 9. $n += 3; 10. $i++; // 把一个中文按两个英文的长度计算 11. } (ord(substr($str,$n,1)) > 192) { elseif 12. $tempstr .= substr($str,$n,2); 13. $n += 2; 14. $i++; // 把一个中文按两个英文的长度计算 15. } { else 16. $tempstr .= substr($str,$n,1); 17. $n ++; 18. } 19. } 20. $tempstr.'...'; return 21.} 中也有自带的函数可以用于不同编码的字符串截取,如,但要在PHPmb_substr()php.ini 中开启相应的扩展。
本文档为【UTF-8中文字符截取】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_591137
暂无简介~
格式:doc
大小:12KB
软件:Word
页数:0
分类:
上传时间:2017-09-17
浏览量:27