PHP使用iconv函数报错什么原因
方法:1、在函数的第二个参数后添加“//IGNORE”,语法为“iconv("UTF-8","GB2312//IGNORE",..)”;2、将gb2312置换成“utf-8”,语法为“iconv("GB2312","UTF-8",..)”。
本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑
php中iconv函数报错怎么办
iconv()介绍
iconv函数可以将一种已知的字符集文件转换成另一种已知的字符集文件。例如:从GB2312转换为UTF-8。
iconv函数在php5中内置,GB字符集默认打开。
iconv()错误
iconv在转换字符”—”到gb2312时会出错,解决方法是在需要转成的编码后加 “//IGNORE”,也就是iconv函数第二个参数后。如下:
iconv("UTF-8", "GB2312//IGNORE", $data)
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
在php中iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库;但有时候iconv对于部分数据转码会无缘无故的少一些。比如在转换字符"—或者繁体"到gb2312时会出错。
下面一起慢慢看一下这个函数的用法。
最简单的应用,把gb2312置换成utf-8:
`$text``=iconv(``"GB2312"``,``"UTF-8"``,``$text``); `
在用$text=iconv("UTF-8","GB2312",$text)过程中,如果遇到一些特别字符时,如:"—或者繁体",英文名中的"."等等字符,转换就断掉了。这些字符后的文字都没法继续转换了。
针对这的问题,可以用如下代码实现:
`$text``=iconv(``"UTF-8"``,``"GBK"``,``$text``); `
你没有看错,就这么简单,不使用gb2312,而写成GBK,就可以了。
还有一种方法,第二个参数,加上//IGNORE,忽略错误,如下:
`iconv(``"UTF-8"``,``"GB2312//IGNORE"``,``$data``); `
没有具体比较这两种方法,感觉第一种(GBK代替gb2312)方法更好。
示例如下:
?php echo $str= ‘你好,这里是卖咖啡!’; echo 'br /> '; echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8 echo 'br /> '; echo iconv_substr($str, 1, 1, 'UTF-8'); //按字符个数截取而非字节 print_r(iconv_get_encoding()); //得到当前页面编码信息 echo iconv_strlen($str, 'UTF-8'); //得到设定编码的字符串长度 ?>
到此这篇关于“PHP使用iconv函数报错什么原因”的文章就介绍到这了,感谢各位的阅读,更多相关PHP使用iconv函数报错什么原因内容,欢迎关注网络资讯频道,小编将为大家输出更多高质量的实用文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: PHP使用iconv函数报错什么原因
本文地址: https://pptw.com/jishu/652385.html