PHP在字符转码时常用到 iconv 函数,但是在某次转码中遇到了个问题;
例:
$str = '今天天气-晴';
$str = iconv('UTF-8','GBK',$str,);
转码以后 $str 确只有 '今天天气晴',查找手册发现,iconv第二个参数可以添加两个后缀,
//TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,
//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。
使用:
1. 发现iconv在转换字符"-"到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。不管怎么样,这个"-"都无法转换成功,无法输出。 另外mb_convert_encoding没有这个bug.
2. mb_convert_encoding 可以指定多种输入编码,它会根据内容自动识别,但是执行效率比iconv差太多;
3. 一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding 函数.
注意:使用mb_convert_encoding 需要php.ini中开启此扩展
相关推荐
php编码转换,不需要iconv,mb_convert_encoding
PHP编码转换函数mb_convert_encoding与iconv用法__1.docx
php 转换字符串编码 iconv与mb_convert_encoding的区别说明,需要的朋友可以参考下。
PHP编码转换函数mb_convert_encoding与iconv用法_.docx
mb_convert_encoding这个函数是用来转换编码的。...mb_convert_encoding的用法见官方:http://php.net/manual/zh/function.mb-convert-encoding.php做一个GBK To UTF-8复制代码 代码如下:< ?phpheade
mb_convert_encoding这个函数是用来转换编码的。原来一直对程序编码这一概念不理解,不过现在好像有点开窍了。
后来又在手册上找到了is_utf8函数,这样,再结合iconv函数,我的问题就解决了。下面帖出这个函数: 复制代码 代码如下:function is_utf8($string) { return preg_match(‘%^(?: [\x09\x0A\x0D\x20-\x7E] # ASCII | ...
在php中字符编码转换我们一般会用到iconv与mb_convert_encoding进行操作,但是mb_convert_encoding在转换性能上比iconv要差很多哦。string iconv ( string in_charset, string out_charset, string str ) 注意:第二...
一种方法是把iconv换成 mb_convert_encoding 另一种方法是修改iconv 的实现,从glibc 改为libiconv 搞了半天,烦躁! 有朋友碰到的话,也可以这么解决了 按照该网友提供的第一个方法,将iconv方法修改为使用mb_...
iconv是转换编码的,但是在中文转码时候出现显示不全问题。 复制代码 代码如下: iconv(“UTF-8″,”GB2312//IGNORE”,$data); 加上//IGNORE,忽略错误...$str = mb_convert_encoding($str, “UTF-7”, “EUC-JP”
另外mb_convert_encoding没有这个bug,所以最好的写法是: mb_convert_encoding($FormValues[‘a’], “gb2312”, “UTF-8”); 但是需要先enable mbstring 扩展库。 也可以把mysql数据库的collation设成utf-8就不...
utf8 简体中文,繁体中文互转 如果需要转换编码请使用iconv()或mb_convert_encoding()
php汉字转拼音得到首字母的类 需要支持iconv转码 也可以自己改为mb_convert_encoding 有问题联系我
主要介绍了php中字符集转换iconv函数使用总结,本文同时介绍了mb_convert_encoding函数,需要的朋友可以参考下
在php开发中有时候会用到转码函数,比如iconv(),mb_convert_encoding()函数,在用函数转码的时候或者解码的时候我们有时候需要先判断当前字符串编码类型,不如是否是utf-8编码,是的话然后进行编码转换等操作。...
Note: You cannot use both "mb_output_handler" with "ob_iconv_handler" ; and you cannot use both "ob_gzhandler" and "zlib.output_compression". ; Note: output_handler must be empty if this is set 'On' ...