我用jquery里的$.post()想php传递汉字,当汉字到达php页面时候,汉字的长度是3/每个汉字,可是我的数据库里的是2/每个汉字
可是我两个页面都是gb2312的字符编码啊,还有我认为转下编码也许可以,可是iconv一转就给转没了,这是怎么回事啊???

解决方案 »

  1.   

    <script src="jquery.js"></script>
    <input type="button" value="Test" onclick="test()">
    <script language="javascript">
    function test(){
    $.post("/test/test", {'text':escape('你')}, function(data){
    alert(data);
    });
    }
    </script>---------------------------------------
    function testAction()

        $text = $this->unescapeAction($this->_request->getPost('text'));
        $text = iconv();//这块怎么转?????????????????
        var_dump($text);
    }
      

  2.   

    $text = iconv("GB2312","UTF-8",$text);
      

  3.   

    在数据库里的是每个汉字长度是2(默认字符集:latin1)
    可是jquery传递过来的的汉字每个长度是3
    我这样$text = iconv("latin1","gb2312",$text);
    可是$text就没东西了
      

  4.   

    还是不行latin1、utf-8和gb2312全互相转了还是那样,转没了
      

  5.   

    郁闷死了,原来是.html页面不显示gb2312的不知道是什么原因
      

  6.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    你的HTML文件头是这样的吗?另外,最好把你数据库的编码改为GBK吧,存汉字为什么要用latin1字符集??不明白
      

  7.   

    mysql里 是用的 set gbk吗
      

  8.   

    恩,其实mysql默认好像就是gbk的不过我用echo mysql_client_encoding($con);却输出是latin1,听纳闷,事实也真是gbk的我的头也是那样的gb2312