你读出的数据是什么编码,XML里就要指定什么编码

解决方案 »

  1.   

    这样试试看呢。  $result = mysql_query($sql);
      
      header('Content-type: text/xml;charset=gb2312'); 
      
      echo "<?xml version='1.0' encoding=gb2312'?>";
      
      echo "<as>\n";
      while ($row=mysql_fetch_row($result)){
        $row=mysql_fetch_row($result);
        /* 转码 */
        $row[0] = iconv("gb2312","UTF-8",$row[0]);
        $row[3] = iconv("gb2312","UTF-8",$row[3]);
        
        echo "<tt>\n";
        echo "<ss>$row[0]</ss>\n";
        echo "<ss1>$row[3]</ss1>\n";
        echo "<ss2>哈哈</ss2>\n"; //一开始我怀疑是空间商的空间不支持中文,我就在此做一个中文测试
        echo "</tt>\n";
      }
      

  2.   

    谢谢各位提供的方法,但是我用了后发现都不行,我特意在MYSQL存中文的那个字段里设置存储方式为gb2312_bin 中文输出后还是问号。
      

  3.   

    问题解决了,只要在执行查询数据库之前执行一次mysql_query("set name 所需编码")然后将header的编码设置与前面执行的编码一样就可以正确的读取出指定的编码数据了。
    我的存中文的字段编码为 gb2312_chinese_ci 在PHP页面执行SQL语句前加入了,mysql_query("set name gb2312"); 这样读出的数据就是GB2312的编码了。呵呵,在看别人的问题里无意中找到的,不过还是感谢热心的朋友了!全部送分~!v(^0^)v