你把gb2312设置成GBK,然后把要插入中文的字段设置成BOLB类型,试一试。

解决方案 »

  1.   

    还是不行,是不是要用mysql4.1版本好点啊
      

  2.   

    你用以下方法查一下你的数据库是否真都设为gb2312.
    mysql> show variables like "%char%";
    +--------------------------+----------------------------------------------------
    -----+
    | Variable_name            | Value
         |
    +--------------------------+----------------------------------------------------
    -----+
    | character_set_client     | utf8
         |
    | character_set_connection | utf8
         |
    | character_set_database   | utf8
         |
    | character_set_results    | utf8
         |
    | character_set_server     | utf8
         |
    | character_set_system     | utf8
         |
    | character_sets_dir       | C:\Program Files\MySQL\MySQL Server 4.1\share\chars
    ets/ |
    +--------------------------+----------------------------------------------------
    -----+
    7 rows in set (0.02 sec)
      

  3.   

    mysql> show variables like "%colla%";
    +----------------------+-----------------+
    | Variable_name        | Value           |
    +----------------------+-----------------+
    | collation_connection | utf8_general_ci |
    | collation_database   | utf8_general_ci |
    | collation_server     | utf8_general_ci |
    +----------------------+-----------------+
    3 rows in set (0.00 sec)
      

  4.   

    我的是设为utf8所以全部显示为utf8,其中| character_set_system     | utf8 无论你设为什么字符集都是一样的,| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 4.1\share\chars
    ets/ |这个指你的安装目录。如果是一致的话还显示??,我就不知道为什么了,另请高明吧。
      

  5.   

    顶一下。我的是mysql4.1.12 for linux ,我已经全部设为gbk。但是还是乱码。
    我也试过改为utf8,binary,gb2312都不可以。但是在win 下没问题。
    谁知道是为什么啊???
      

  6.   

    我&readzhangxy碰到的情况一模一样
      

  7.   

    我的问题是:在终端查询mySQL的结果里能正常显示中文,却不能通过终端输入中文。但是通过php连接mySQL查询的结果却显示“???”,不知道为什么。 我的php和apache都能正常显示中文。系统是FC4。
      

  8.   

    character_set_client    
     character_set_connection 
     character_set_database   
     character_set_results
    这几个都要看,还有你的field的character set,mysql会自动转换内容的编码
    输出时从 field的character set => character_set_connection => character_set_results
    输入时从 character_set_client => character_set_connection => field的scharacter set针对不同的client端,如mysql命令行,php程序,需要设置相应的character set (client/results)简单点的做法是 set names gbk/utf8等,相当于同时设置 character_set_client、 character_set_connection和character_set_results具体看手册的相应那章,讲得很详细
      

  9.   

    我也遇到了相同的问题,我的是MYSQL 5.012+PHP5  
    PHP5里显示一切正常,在IE里用命令添加数据也正常,但是在命令行添加数据就是乱码,在IE里读出MYSQL中文数据也是乱码,请高手帮忙看看...
      

  10.   

    命令行插入前先运行set name gbk
      

  11.   

    我试验了一下,可以这样设置:
    首先数据库缺省字符集和应该是gbk,如果是utf8就不行(utf8不是支持汉语吗?不知道为什么)
    create database test default character set  gbk;
    然后在插入之前运行
    set names gbk;
    就ok了。但是为什么使用utf8,然后运行
    set names gbk,也会出错:20001:data column is too long....
    不知道为什么
      

  12.   

    gb2312有时是这样的了.用utf-8就可以了.
      

  13.   

    在PHP程序中数据库按照普通的链接方式链接之后加入下面三行就可以了。
    $conn->query("SET character_set_client = gbk;");
    $conn->query("SET character_set_results = gbk;");
    $conn->query("SET character_set_connection = gbk;");
    gbk 可以改成其它字符集
      

  14.   

    在你的C:\WINDOWS下创建一个my.ini的文件,在里面加入如下内容:
    [WinMySQLAdmin]
    Server=D:/mysql/mysql/bin/mysqld-nt.exe (根据你的安装路径改变)[mysqld]
    basedir=D:/mysql/mysql (根据你的安装路径改变)
    datadir=D:/mysql/mysql_data/data (根据你的安装路径改变)
    default-character-set=gbk (主要设置这里)[client]
    default-character-set=gbk (主要设置这里)
    然后启动mysql,应该问题解决!
      

  15.   

    ALTER DATABASE U_R_db_name DEFAULT CHARACTER SET utf8;
    ALTER TABLE U_R_table_name DEFAULT CHARACTER SET utf8;
    ------------------------------------------------------------------------
    connection_url: 
    jdbc:mysql://host_name:3306/[database_name]?useUnicode=true&characterEncoding=utf8
    我在MySQL Query Browser和Eclipse上运行都没问题 ^_^
      

  16.   

    其实我们可以这样理解,如果要在mysql数据库中存储和读取中文,则需要mysql服务器,客户端都采用的是支持中文的字符集,这在很多安装mysql的时候可以指定,也可以通过配置my.ini来更改;
    但是还有一点大家总是容易忽略,如果用编程语言或者客户端来连接mysql的数据库,其连接或者该客户端使用的也必须是支持中文的字符集,如果是dos窗口作为客户端连接到mysql,因为dos窗口的默认字符集是gb2312,如果你的mysql使用的是utf8,那么insert语句插入后再次读出,由于经过一次转码,会显示为???,但如果这时你用utf8的客户端来看那条记录,则应该能够正确识别出来;
    如果使用的是odbc连接,则不管是vc连接还是其他脚本语言进行连接,都需要在odbc连接字符串中指定使用的中文字符集;
    例如,以最新的mysql-connector-odbc-3.51.12驱动来说,在配置odbc连接的时候,在connection option选项卡的Initial Statement参数处就可以配置为SET NAMES GB2312,这样,通过此odbc连接访问该数据库,写入和读取中文都不会有问题