header("Content-type: text/vnd.wap.wml; charset=\"utf-8\"");

解决方案 »

  1.   

    ray929(海豚) :这样还是不行
      

  2.   

    用gbk。估计有些手机的gb2312等同于gbk,有些不是,就有乱码了
      

  3.   

    把所有程序用NotePad/Editplus另存为Utf-8格式程序文件太多用ConvertZ.exe批量转换把程序里所有gb2312替换为utf-8数据库(如果是Mysql)里的数据用文本导出也另存为Utf-8,再导入
      

  4.   

    在文件前面我是这样写的:
    header("Content-type: text/vnd.wap.wml; charset=\"utf-8\"");
    echo "<?xml version=\"1.0\"  encoding=\"gb2312\"?>
    <!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.3//EN\" \"http://www.wapforum.org/DTD/wml13.dtd\" >
    <wml xml:lang=\"zh\">
    <head>
    <meta http-equiv=\"Cache-Control\"  content=\"no-cache\"/>
    </head>帮忙看一下,是不是这样错了?现在按照我这样的改法,页面进不去了~编码的位置究竟应当怎么样呢?
      

  5.   

    所有程序用NotePad/EditPlus打开另存为Utf-8所有程序中gb2312替换为utf-8程序太多用ConvertZ.exe批量转换数据库中数据导出为文本文件也另存为utf-8导入
      

  6.   

    如果数据库是mysql的(用phpmyadmin 2.6)导出数据文件时language选zh-gb2312导入时选zh-utf-8
      

  7.   

    数据库是oracle,在最初设定的时候,选择的编码方式是gb2312,所以,现在比较麻烦
      

  8.   

    我只单独把一个页面保存程utf8的,可以吗?
      

  9.   

    echo "<?xml version=\"1.0\"  encoding=\"gb2312\"?>改成
    echo "<?xml version=\"1.0\"  encoding=\"utf-8\"?><wml xml:lang=\"zh\">改成
    <wml xml:lang=\"zh-cn\">试一试
      

  10.   

    谢谢love01px(),现在测试手机不在我手上,我明天早上测试一下~希望明天能继续和您联系~
      

  11.   

    网址是什么,
    用winwap测试一下
      

  12.   

    <?
    class qswhGBK{
     var $qswhData;
     function qswhGBK($filename="qswhGBK.php"){
      $this->qswhData=file($filename);
     }
     function gb2u($gb,$callback=""){
      /******(qiushuiwuhen 2002-8-15)******/
      $ret="";
      for($i=0;$i<strlen($gb);$i++){
       if(($p=ord(substr($gb,$i,1)))>127){
        
        $q=ord(substr($gb,++$i,1));
        $q=($q-($q>128?65:64))*4;
        $q=substr($this->qswhData[$p-128],$q,4);
       }
       else
        $q=dechex($p);
       if(empty($callback))
        $ret.=$q;
       else {
        $arr=array("htmlHex","htmlDec","escape","u2utf8");
        if(is_integer($callback)){
         if($callback>count($arr))die("Invalid Function");
         $ret.=$this->$arr[$callback-1]($q);
        }else
         $ret.=$callback($q);
       }
      }
      return $ret;
     }
     
     function htmlHex($str){
      return "&#x".$str.";";
     }
     
     function htmlDec($str){
      return "&#".hexdec($str).";";
     }
     
     function escape($str){
      return hexdec($str)<256?chr(hexdec($str)):"%u".$str;
     }
     
     function u2utf8($str){
      /******(qiushuiwuhen 2002-8-15)******/
      $sp="!'()*-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~";
      $dec=hexdec($str);
      $bin=decbin($dec);
      $len=strlen($bin);
      $arr=array("c0","e0","f0");
      if($dec>0x7f){
       $ret="";
       for($i=$len,$j=-1;$i>=0;$i-=6,$j++){
        if($i>6)
         $ret="%".dechex(0x80+bindec(substr($bin,$i-6,6))).$ret;
        else
         $ret="%".dechex(hexdec($arr[$j])+bindec(substr($bin,0,6-$i))).$ret;
       }
      }else{
       if(strpos($sp,chr($dec)))
        $ret=chr($dec);
       else
        $ret="%".strtolower($str);
      }
      return $ret;
     }
    }
    ?>
      

  13.   

    http://www.zeali.net/blog/entry.php?id=55
     有一个比较完整的字符编码转换包。
      

  14.   

    所有程序用NotePad/EditPlus打开另存为Utf-8所有程序中gb2312替换为utf-8程序太多用ConvertZ.exe批量转换数据库中数据导出为文本文件也另存为utf-8导入正解
      

  15.   

    TO gu1dai(异域苍穹◆追夢人) :      程序用Notepad/EditPlus打开另存为UTF-8编码不行的!      http://ouk.cn/utf8/ 中间的空隙就是另存为UTF-8编码产生的!````
      

  16.   

    Freebsd中可以用iconv转
    #iconv -f GB2312 -t UTF-8 文件名 > 另存文件名
      

  17.   

    确保你所有文件的编码统一为utf-8,对于wap这是最重要的一步。我写的转码程序 你可以参考下http://www.cnblogs.com/gudai/
      

  18.   

    iconv我对你的建议就是iconv,我们公司的wap就是用的iconv
    ------------
     http://ouk.cn/utf8/ 中间的空隙就是另存为UTF-8编码产生的!````这个的原因大概不在另存为上面,呵呵,至少我用另存为从没发生过问题。注意:对于纯ansii字符组成的文件另存为utf-8,editplus是什么也不会去做的。只有用notepad
      

  19.   

    header("Content-type: text/vnd.wap.wml; charset=\"utf-8\"");
    echo "<?xml version=\"1.0\"  encoding=\"gb2312\"?>
    这里明显就是错误的了