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的黑色。
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn