今天往mysql数据库中插入中文数据出现了乱码问题,使用
mysql> show variables like '%char%';显示如下:
+--------------------------+--------------------------------------------------
-----+
| Variable_name            | Value
     |
+--------------------------+--------------------------------------------------
-----+
| character_set_client     | latin1
     |
| character_set_connection | latin1
     |
| character_set_database   | latin1
     |
| character_set_filesystem | binary
     |
| character_set_results    | latin1
     |
| character_set_server     | latin1
     |
| character_set_system     | utf8
     |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.0\share\cha
ets\ |
+--------------------------+--------------------------------------------------
于是在mysql安装目录下打开my.ini文件找到default-character-set=latin1,将其修改为:default-character-set=utf8,重启,
执行mysql> show variables like '%char%';
mysql> show variables like '%char%';
+--------------------------+-------------------
-----+
| Variable_name            | Value
     |
+--------------------------+-------------------
-----+
| character_set_client     | utf8
     |
| character_set_connection | utf8
     |
| character_set_database   | latin1
     |
| character_set_filesystem | binary
     |
| character_set_results    | utf8
     |
| character_set_server     | latin1
     |
| character_set_system     | utf8
     |
| character_sets_dir       | C:\Program Files\M
ets\ |
+--------------------------+-------------------
character_set_database   | latin1   和 character_set_server     | latin1
始终没有修改过来,乱码问题依然存在,后来尝试在数据库连接中加入?useUnicode=true&characterEncoding=UTF-8,暂时解决了问题,但是character_set_database   和 character_set_server    到哪里去修改呢?

解决方案 »

  1.   

    但是character_set_database   和 character_set_server  到哪里去修改呢?character_set_database 是你create database 时设置的 char set
    character_set_server 是你 my.ini 中的 [mysqld] 节中的 default-character-set (注意是mysqld 中而不是 mysql 下的那个)
      

  2.   

    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  3.   

    谢谢了,我提的问题解决了,但是在数据库连接中不加入?useUnicode=true&characterEncoding=UTF-8乱码依旧存在,不知道为何,我调试到执行插入前编码显示都是正确的。我得编码都是utf-8的。