输出语句看看。
有可能是你里面有些特殊字符没有处理,
而在PHPMYADMIN中会帮你处理掉的。

解决方案 »

  1.   

    这是其中一条输出的SQL语句:INSERT INTO jyprice SET gameId='1',properties='宝石',proType='1',price='12'
    插入后properties字段值为'&#23453&#30707',应该是'宝石'才对,为什么会这样?
      

  2.   

    你把mysql设置成支持中文的。就行了
      

  3.   

    to:pswdf(小邪) 
    我把其中一条输出的SQL语句:INSERT INTO jyprice SET gameId='1',properties='宝石',proType='1',price='12'在phpmyadmin中执行是没有乱码的,mysql应该是已经支持中文了.
      

  4.   

    这个是在程序里执行的?不是在phpmyadmin里执行的吧?
    应该是程序的问题。你把这个sql语句打印出来然后看看源文件,看看中文是不是乱码。
      

  5.   

    excel里保存的是unicode,就是你看到的&#23453&#30707,CSDN里有一个unicode转gb2312的类,自己找一下
      

  6.   

    to: itian(倚天) 
    INSERT INTO jyprice SET gameId='1',properties='宝石',proType='1',price='12'是在程序即将执行mysql_query($sql)时打印出来的sql语句,为什么执行后会成乱码???
      

  7.   

    &#23453&#30707
    这行字就是宝石的意思,不是乱码。你用dw自己写上一些内容看看源代码就知道了。
      

  8.   

    php的汉字转换: Unicode(UTF8)->GBK     http://dev.csdn.net/develop/article/14/14732.shtm
    怎样用这个类来解决我的问题,我在生成sql语句时用$qswh->decode('宝石'),但结果还是不行,请高手帮帮我,急!!!
      

  9.   

    xpace(流氓王子) 在吗? 帮帮我吧,分不够我另开帖给分你.
      

  10.   

    php的汉字转换: Unicode(UTF8)->GBK     
    这个我用过...可以通过...
    不过有更简单的方法---iconv函数。
      

  11.   

    出现这个是正常的,那并不是乱码。
    &#23453&#30707 就是 宝石
    只不过他是采用了以文本格式表示的unicode代码
    在includes.inc中定义了一个get函数所有读出数据都要在这里处理
    function get( $exc, $data )
    {
    switch( $data['type'] )
    {
    // string
    case 0:
    $ind = $data['data'];
    if( $exc->sst[unicode][$ind] ) {
    return uc2html($exc->sst['data'][$ind]);//这就是编码处理。如果你需要,可以这里。但不建议那样做
    }else
    return $exc->sst['data'][$ind];
    // integer
    case 1:
    return (integer) $data['data'];
    // float
    case 2:
    return (float) $data['data'];
            case 3:
    return gmdate("m-d-Y",$exc->xls2tstamp($data[data]));
    default:
    return '';
    }
    }为什么不建议修改那里呢?
    1、unicode编码覆盖了全世界的各种文字,中文只是其中一部分
    2、一个excel文档可能包含各种文字,不能简单的都视为中文
    如果非要指定只能接受中文,那我也没有办法
      

  12.   

    to: xuzuning(唠叨)
    我在function get( $exc, $data )中修改如下:
    return $qswh->decode(uc2html($exc->sst['data'][$ind]));//这就是编码处理。如果你需要,可以这里。但不建议那样做
    为什么还是不行????
    应该怎样才可以? 帮我改改,急呀!!!
      

  13.   

    1、我不知道你对原程序做了多大改动
    2、$qswh是什么?在哪里实例化的?能传进get函数里吗?
    3、uc2html函数定义为
    function uc2html($str) {
    $ret = '';
    for( $i=0; $i<strlen($str)/2; $i++ ) {
    $charcode = ord($str[$i*2])+256*ord($str[$i*2+1]);
    $ret .= '&#'.$charcode;
    }
    return $ret;
    }
    就是说一个unicode编码的串经过uc2html后已经是文本形式的串了
    4、再说我也不知道$qswh->decode是如何处理的
      

  14.   

    修改uc2html函数为
    function uc2html($str) {
    $ret = '';
    for( $i=0; $i<strlen($str)/2; $i++ ) {
    $charcode = ord($str[$i*2])+256*ord($str[$i*2+1]);
    // $ret .= '&#'.$charcode;
    $ret .= iconv("utf-8","gb2312",u2utf8($charcode));
    }
    return $ret;
    }其中u2utf8为
    function u2utf8($c) { 
    $str=""; 
    if ($c < 0x80) { 
    $str.=$c; 
    } else if ($c < 0x800) { 
    $str.=chr(0xC0 | $c>>6); 
    $str.=chr(0x80 | $c & 0x3F); 
    } else if ($c < 0x10000) { 
    $str.=chr(0xE0 | $c>>12); 
    $str.=chr(0x80 | $c>>6 & 0x3F); 
    $str.=chr(0x80 | $c & 0x3F); 
    } else if ($c < 0x200000) { 
    $str.=chr(0xF0 | $c>>18); 
    $str.=chr(0x80 | $c>>12 & 0x3F); 
    $str.=chr(0x80 | $c>>6 & 0x3F); 
    $str.=chr(0x80 | $c & 0x3F); 
    }
    return $str; 
    }
      

  15.   

    问题解决,谢谢 xuzuning(唠叨) 接分!
      

  16.   

    遇到跟gjs_w(阿松)一样的问题,但为什么我按xuzuning(唠叨) 兄说的做不行!
    还有,有一个hebrevc函数可以将之转换成中文,但为什么在includes.inc里面用就没有任何反应!
    谁能帮忙解决啊?