提交英文可以,
汉字出错 Data too long for column 'name' at row 1 
我已经加上mysql_query("SET NAMES 'GB2312'");
如果 SQL直接改为$sql="insert into gbook(name,content) values('你你你你你','你你你') ";就可以;
从ajax.php传过去汉字就不行。为什么???

解决方案 »

  1.   

    将标题和内容 iconv 转换一下编码试一下
      

  2.   

    $objResponse = new xajaxResponse('gb2312');看看这样可以不。
      

  3.   

    哦,我看错了,那你如何实现ajax的,看看你的output是什么编码的
      

  4.   

    如果你的数据库编码时拉丁文,char(1)代表单个英文字符,要用这样的编码来存储中文,要占用两个字节.
    如果你数据库本省的编码是GB2312或utf8, char(1)表示一个汉字,两个字节.
    还有,JavaScript本身是用UTF8编码的.建议你的php文件用UTF8编码.
      

  5.   

    如果用gb2312呢??整个网站大都是用的gb2312
    我也加上这句ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gb2312"); 
      

  6.   

    你送过去的数据是utf-8编码的...
    $con = iconv( "utf-8" , "gbk" , $con);
    $name = iconv( "utf-8" , "gbk" , $name);然后再插入数据库,那么就没问题了.ajax发送出去的数据的编码和页面编码无关,因为浏览器内部是用unicode来处理数据的...
      

  7.   

    iconv也试了,问题依旧
    ?不可能...不过你发送数据的javascript有点问题,你应该用encodeURIComponent将字符串编码后再发到服务器.
      

  8.   

    谁能给个没有乱码的小例子、、
    完整的小例子GB2312
    PHP 5.1.6 +Apache 2.0.59 +MySQL 5.0.24
      

  9.   

    我的PHP页面和数据表查询全部是utf-8的,为什么就是乱码呢