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

解决方案 »

  1.   

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

  2.   

    这篇文章说这个空格有点特殊,是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); 却没有效果,求指教
      

  3.   


    完整代码如下:
    <?php
    $str = file_get_contents('http://www.gmw.cn/cg/2013-01/25/content_6510781.htm');
    $in = 'UTF-8';
    $out = 'GBK';
    $str = str_replace("0xC2 0xA0", '&nbsp;', $str);//
    $str = mb_convert_encoding($str, $out, $in); 
    $str = str_replace('charset=utf-8','',$str);
    var_dump($str);
    ?>
      

  4.   

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

  5.   

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