Heim  >  Artikel  >  Backend-Entwicklung  >  mb_convert_encoding函数utf-8转为gbk时,空格变问号问题

mb_convert_encoding函数utf-8转为gbk时,空格变问号问题

WBOY
WBOYOriginal
2016-06-23 14:21:191410Durchsuche

请问如何解决?只有空格变成问号,其他中文什么的都正常


回复讨论(解决方案)

这与你的编辑器有关,空格不是标准的空格
你可否
echo base64_encode('你的utf-8字符串');
贴出结果一观

很怀疑那个不是一般的空格

这与你的编辑器有关,空格不是标准的空格
你可否
echo base64_encode('你的utf-8字符串');
贴出结果一观
这篇文章说这个空格有点特殊,是0xC2 0xA0。
http://hi.baidu.com/lilong2114311/item/6d0b20c87ede71c8984aa097

但我试着转换

$in = 'UTF-8';$out = 'GBK';$str = str_replace("0xC2 0xA0", ' ', $str);//$str = mb_convert_encoding($str, $out, $in); 


却没有效果,求指教

这与你的编辑器有关,空格不是标准的空格
你可否
echo base64_encode('你的utf-8字符串');
贴出结果一观

完整代码如下:

这与你的编辑器有关,空格不是标准的空格
你可否
echo base64_encode('你的utf-8字符串');
贴出结果一观

你在页面搜索“火之国木叶忍者村的第四代火”,前面有四个问号。

查看源码后确认那几个不是正常的空格(0x20),而是0xA0:No-Break Space(即nbsp)

你自己写错了就不能怪人家
$str = str_replace("0xC2 0xA0", ' ', $str);
应为
$str = str_replace("\xC2\xA0", ' ', $str);

另外是源代码有bom头

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