utf-8 gbk
$str="黑色"; 字符太少的情况下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的黑色。