PHP iconv 函数转gb2312的bug解决方法
程序员文章站
2023-11-09 23:14:46
iconv( "utf-8", "gb2312//ignore" , $formvalues['a']) ignore的意思是忽略转换时的错误,发现iconv在转换字符"—...
iconv( "utf-8", "gb2312//ignore" , $formvalues['a'])
ignore的意思是忽略转换时的错误,发现iconv在转换字符"—"到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
另外mb_convert_encoding没有这个bug,所以最好的写法是:
mb_convert_encoding($formvalues['a'], "gb2312", "utf-8");
但是需要先enable mbstring 扩展库。
也可以把mysql数据库的collation设成utf-8就不用作转换了
ignore的意思是忽略转换时的错误,发现iconv在转换字符"—"到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
另外mb_convert_encoding没有这个bug,所以最好的写法是:
mb_convert_encoding($formvalues['a'], "gb2312", "utf-8");
但是需要先enable mbstring 扩展库。
也可以把mysql数据库的collation设成utf-8就不用作转换了