Heim  >  Artikel  >  php教程  >  PHP utf-8和gb2312编码转换乱码的问题

PHP utf-8和gb2312编码转换乱码的问题

WBOY
WBOYOriginal
2016-05-25 16:52:501319Durchsuche

经过一时间的 php + mssql,感觉 mssql 对编码的支持不是很好(其实还是自己没有把握好啦),但是又还没有来得急换数据库,只能将就点,今天又在提交数据时出现了错误。

由于提交的 ntext 字段的内容比较多,大约有 220 KB,所以造成了我的误解,以为是文章太长而引起的错误。我一看 php 配置,发现  php 对 mssql.textsize 的支持已经在 400 K了,怎么还出错?开启错误后才发现,原来不是文章太长,而是编码引起的错误。错误如下:

Notice: iconv() [function.iconv]: Detected an illegal character in input string in...。

英文实在太烂,只是知道 iconv() 函数出问题。google 翻译,说是输入字符串中检测到非法字符。恍然大悟。

根据错误提示到网上找到问题的解决办法,就是在 iconv() 的第二个参数加个 //IGNORE,就是忽略错误的意思,代码如下:

iconv("utf-8", "gbk//IGNORE", $str);

测试,提交成功。

注:网友经验,gbk 的范围比 gb2313 大,所以用 gbk 编码的出错率比 gb2313 小。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn