首页 >后端开发 >php教程 >字符串转码问题

字符串转码问题

WBOY
WBOY原创
2016-06-23 14:28:271017浏览

utf-8 gbk

$str="黑色";
这个字符串我用mb_detect_encoding函数检查是 UTF-8编码,
$s1 = iconv ( 'utf-8', 'gbk', $string );
$s1 = mb_convert_encoding ( $string, "GBK", "UTF-8" );

我用上面两种方法进行转码,结果都会乱码,请教是什么原因?

回复讨论(解决方案)

字符太少的情况下detect会不准确的
至于乱码还会受输出的编码影响,例如页面指定编码是gbk,但php输出的是utf-8字串,因素很多

$str="黑色";
如果用mb_detect_encoding函数检查是 UTF-8编码
那么就表示你的程序文件是 utf-8 编码的
既然程序是 utf-8 编码的,当然输出也就是 utf-8 的了
你把 utf-8 的转成 gbk 的,出现乱码就是必然的了

乱码很正常啊,你的页面是utf8的,但是你显示gbk的内容,所以就乱码了

你echo urlencode($s1);看看结果应该是每个汉字两字节的结果 %BA%DA%C9%AB,这个就是gbk的黑色。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn