東南西北風

生活就像一杯加了糖的苦咖啡。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

修改Mysql的编码问题

Posted on 2009-09-13 14:36  东南西北风  阅读(350)  评论(0)    收藏  举报
1、查看Mysql正在使用的编码集
status;

--或者使用如下命令
show variables like 'character%';
       ·status显示的结果如下:
Code
      ·show variables like 'character%'显示的结果为:
Code
2、在mysql的安装路径中,找到my.ini文件进行如下修改:
[client]
port=3306

[mysql]
default-character-set=utf8

[mysqld]
default-character-set=utf8
3、重新启动Mysql
Code
注意:般就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:
SET NAMES 'utf8';

它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
----------------------------------------------------------
1: 在Mysql的配置文件 my.ini (一般在c:/windows/下面) 里加上服务器的默认编码配置: default-character-set=utf8
2: 修改你的数据库的字符编码:进入Mysql数据库,通过命令修改你的数据库字符编码: ALTER DATABASE `databaseName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci  (修改后需要重启Mysql数据库)
3: 如果你的表以及表里的字段使用了不正确的字符编码,同样需要修正过来:命令:
----------------'tableName'两边的符号不是引号,是"`"号(~)----------------
 修改表的编码: ALTER TABLE `tableName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
 修改字段的编码: ALTER TABLE `tableName` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
(做好了时,再跑一下上面那两个查看字符编码的命令,看看是否全部都变成了utf8)

4: 如果还无效的话,再尝试使用这个MYSQL数据库连接字符串:  jdbc:mysql://localhost:3306/xxxx?useUnicode=true&characterEncoding=UTF-8 (有时可能需要将符号(&)转码写成(&))......