update 6.11在更仔细的看了php手册中关于mb_detect_encoding的评论之后,
if you try to use mb_detect_encoding to detect whether a string is valid utf-8, use the strict mode, it is pretty worthless otherwise.
我又有一个疑问,在检测gbk的时候mb_detect_encoding 返回的是cp936
我需要对这个值进行判断然后使用iconv('gbk','utf-8',$str)来转换,如果是别的呢》
gbk对应的是cp936 别的对应,我应该如何在检测方法中进行匹配呢》?
$a=' name:默认排序, key:sort, value:, status:0, isselected: 0 }';// var_dump($b);$b=iconv('utf-8', 'gbk', $a);$x=mb_detect_encoding($a);$y=mb_detect_encoding($b);var_dump($x,$y);var_dump($b);
样图是在浏览器编码utf8下截图,编码换成gbk后中文正常显示
疑问:1、为什么iconv转换后的字符串仍然为utf-8
2、mb_detect_encoding到底是探测的什么编码
3、产生则这样的问题后,我还能不能用mb_convert_encoding转码?
回复内容: update 6.11在更仔细的看了php手册中关于mb_detect_encoding的评论之后,
if you try to use mb_detect_encoding to detect whether a string is valid utf-8, use the strict mode, it is pretty worthless otherwise.
我又有一个疑问,在检测gbk的时候mb_detect_encoding 返回的是cp936
我需要对这个值进行判断然后使用iconv('gbk','utf-8',$str)来转换,如果是别的呢》
gbk对应的是cp936 别的对应,我应该如何在检测方法中进行匹配呢》?
$a=' name:默认排序, key:sort, value:, status:0, isselected: 0 }';// var_dump($b);$b=iconv('utf-8', 'gbk', $a);$x=mb_detect_encoding($a);$y=mb_detect_encoding($b);var_dump($x,$y);var_dump($b);
样图是在浏览器编码utf8下截图,编码换成gbk后中文正常显示
疑问:1、为什么iconv转换后的字符串仍然为utf-8
2、mb_detect_encoding到底是探测的什么编码
3、产生则这样的问题后,我还能不能用mb_convert_encoding转码?
首先,看这里
http://cn2.php.net/manual/zh/function.mb-detect-encoding.php
http://cn2.php.net/manual/zh/function.mb-detect-order.php
ps.
如果你是想输出json中文,可以考虑使用servicesjson类。
解决方案是:把utf-8 改成utf8