先贴上我的代码:$char = str_split($city);
echo count($char).':';
echo ord($char[0]).'-';
echo ord($char[1]).'-';
echo ord($char[2]).'-';
echo ord($char[3]).'-';
echo ord($char[4]).'-';
echo ord($char[5]).'-';
echo ord($char[6]).'-';
echo ord($char[7]).'-';
echo ord($char[8]).'-';
echo ord($char[9]).'-';

$conv_str = iconv("utf8","gb2312",$city);
echo $conv_str;我的  $city 是用 utf8 编码的 "西湖" 两个汉字
上面这些 echo 证明了它是正确编码的。可是到后面 iconv 后,为什么就没有任何输出了?

解决方案 »

  1.   

    手册上是这样写的:string iconv ( string in_charset, string out_charset, string str )
    你是要从gb2312转换到utf-8吧,应该改成 : $conv_str = iconv("gb2312","utf-8",$city);
      

  2.   

    楼主是要把utf-8转成gb2312吗?你应该这么写$conv_str = iconv("utf-8","gb2312",$city);
    中间少了一个横杠,utf8是mysql里面的写法
      

  3.   


    $conv_str = iconv("utf-8","gb2312",$city);
      

  4.   

    昨天我也碰到编码的问题,在前面的时候用的utf-8,后面显示的时候又从utf-8转成gbk,然后显示的就为空了,所以在写程序的时候编码要统一。
    所以你倒数第二行的转码有问题了:应该成:$conv_str = iconv('gb2312','utf-8',$city);
    或者$conv_str = mb_convert_encoding($city,'gb2312','utf-8');
      

  5.   

    不好意思搞错了,呵呵 $conv_str = mb_convert_encoding($city,'utf-8','gb2312');