首页 > 后端开发 > php教程 > php 5.2.4 iconv函数TRANSLIT 有时候不靠谱

php 5.2.4 iconv函数TRANSLIT 有时候不靠谱

WBOY
发布: 2016-06-13 11:19:32
原创
1285 人浏览过

php 5.2.4 iconv函数TRANSLIT 有时不靠谱

php 版本 5.2.4

问题:文件字符串转码时按字节截断不当

比如

$str = “公司”;                                  //默认以UTF-8编码$str = Simple_Util_String::msubstr($str, 4);	// 按字节截取前4个字节,原字符串有6个字节$str .= “adfadsfasdfadsfasdf”; 			//拼接后面的字符串  (执行下一步后,这些字符就消失了)$str = iconv("UTF-8", "GBK//TRANSLIT",$str);    // 转码 , 遇到不认识的字符串进行转写
登录后复制

执行此步时,“公司”的“司”字编码不完整,iconv不认识,但iconv没有转写,而是做了截断。导致$str后面的字符串也没有转换成功,“adfadsfasdfadsfasdf”丢失了。在一些商业产品,尤其是有关统计的系统里,这是很危险的。

解决方法是:

改变iconv第二个参数。

$str = iconv("UTF-8","GBK//IGNORE", $str);
登录后复制

总结:iconv的TRANSLIT并不靠谱,遇到不认识也不能转写的字符串,也可能截断。保险的方法是用IGNORE。

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板