当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP iconv 函数转gb2312的bug解决方法

PHP
php 服务器调试 Zend Debugger 的安装教程
从Web查询数据库之PHP与MySQL篇
php 应用程序安全防范技术研究
php 不同编码下的字符串长度区分
php 生成饼图 三维饼图
PHP 字符截取 解决中文的截取问题,不用mb系列
PHP5 操作MySQL数据库基础代码
php面向对象全攻略 (一) 面向对象基础知识
php面向对象全攻略 (二) 实例化对象 使用对象成员
php面向对象全攻略 (三)特殊的引用“$this”的使用
php面向对象全攻略 (四)构造方法与析构方法
php面向对象全攻略 (五) 封装性
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
php面向对象全攻略 (七) 继承性
php面向对象全攻略 (八)重载新的方法
php面向对象全攻略 (九)访问类型
php面向对象全攻略 (十) final static const关键字的使用
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
php面向对象全攻略 (十二) 抽象方法和抽象类
php面向对象全攻略 (十四) php5接口技术

PHP iconv 函数转gb2312的bug解决方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 185 ::
收藏到网摘: n/a

之前写过一篇解决xajax库中文乱码的问题,说到可以用 iconv( "UTF-8", "gb2312" , $FormValues['a']) 来转换,最近发现更好的写法应该是。 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就不用作转换了