一、MySQL中文乱码
我的操作系统是:Ubuntu 11.4,MySQL的版本是:5.1,这两天使用JSP连接MySQL总是出现乱码问题,昨天晚上终于解决了,方法如下:
首先查看默认的字符集
在终端机使用:mysql -h localhost -u root -p 命令连接上MySQL后输入命令:
SHOW VARIABLES LIKE 'character%';结果如下:
+--------------------------+---------------------------------+
| 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 |usr/share/mysql/charsets |
+--------------------------+---------------------------------+
可以看到mysql5.1的字符集默认是latin1(ISO_8859_1),为了统一起见我设置字符集为UTF-8,步骤如下:
1、打开终端机输入:sudo gedit/etc/mysql/my.cnf
2、打开my.cnf文件后,分别在
[client]下添加
default-character-set=utf8
在[mysqld]下添加
default-character-set=utf8
注意:我也不知道为什么, default-character-set=utf8的添加必须在[client]和[mysqld]标签紧接的下一行,不然
不好使,
3、再次输入命令 SHOW VARIABLES LIKE 'character%';结果如下:
+--------------------------+---------------------------------+
|Variable_name | Value |
+-------------------------+---------------------------------+
|character_set_client | utf8 |
|character_set_connection | utf8 |
|character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | usr/share/mysql/charsets |
+--------------------------+---------------------------------+
OK,UTF-8字符集设置完成,重新启动服务,命令如下:
停止服务:sudo /etc/init.d/mysql stop
开启服务:sudo /etc/init.d/mysql start
重启服务:sudo /etc/init.d/mysql restart
好像设置以前建的数据库还会是乱码,设置后建的数据库一切OK。
4、在JSP页面中设置编码为UTF-8,这样编码统一了,乱码问题也解决了。
二、MySQL Query Browser 中文乱码解决
我用截图来说明:
在MySQL Query Browser 建立table的时候,选择Table Options选项,在Storage Engine中选择InnoDB,Character选择utf-8,OK问题解决。O(∩_∩)O~