您好,我需要向数据库插入中文数据可是插入后都是乱码,或者干脆空白没有请懂的朋友帮忙
环境:
          FC7
          apache2.0         mysql 5.0      php5.0
           mysql数据表在终端命令行中可以显示中文,前提是把命令终端字符设为gb2312,从命令行执行php脚本可以将中文插入到mysql而不显示乱码,转到网页上,从表单中输入中文数据,不能插入到mysql中,字母和数字可以,中文的地方都是空白,我的相关软件都是随系统一起装好,没有乱改过,请了解的朋友指点一下啊。谢谢了。          

解决方案 »

  1.   

    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码字符集设置的问题。1。看一下你的表的字符集设置。 show create table t1;
    2。mysql_query("set names 'gb2312';") 关键要看你的具体情况。
      

  2.   

    你好,我用 show variables like 'char%';查看了字符设置,除了 set_system是UTF8 以外,其它都是拉丁,我还是没弄好,不知道关键是要设置哪个地方
      

  3.   

    ls的朋友,我用你的方法查过了,表字符集是latin1,应该怎样改?
      

  4.   

    没什么好办法,只能先把你表中的数据全部导出,清空表,然后将表的字符集改为gb2312 或gbk ,然后再将数据导入。
      

  5.   

    表的字符集改过了,需要显示中文的字段也改,(两个ENUM型)成了GB2312可是数据导入之后仍然是空白,而且用DESC TABLE 也显示不了建表时列表字段中的中文。ls所说没有指定编码,是指在哪里指定啊?
      

  6.   

    请贴出你的show create table 语句。
      

  7.   

    感谢了!看着LS上资料,终于弄好了。只是觉得偶然就弄好了,
    执行SET NAMES ‘GB2312’PHP脚本里查询之前也用这句,制表时加上CHARSET=UTF8,表单网页也是UTF8,改了这几样之后可以正确的往MYSQL里插入显示中文了。
      

  8.   

    这句是关键:SET NAMES ‘GB2312’凡是数据库,都要很认真的注意字符集问题