连接到mysql在终端输入:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| mysql> show variables like 'collation_%'; +----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8_general_ci | | collation_database | utf8_general_ci | | collation_server | utf8_general_ci | +----------------------+-----------------+ 3 rows in set (0.02 sec) mysql> show variables like 'character_set_%'; +--------------------------+----------------------------+ | 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/ | +--------------------------+----------------------------+ 8 rows in set (0.02 sec)
|
mysql>
其他的一些设置方法:修改数据库的字符集
1 2
| mysql>use mydb mysql>alter database mydb character set utf-8;
|
创建数据库指定数据库的字符集
1
| mysql>create database mydb character set utf-8;
|
通过配置文件修改:修改
1 2 3 4 5 6
| /var/lib/mysql/mydb/db.opt default-character-set=latin1 default-collation=latin1_swedish_ci 为 default-character-set=utf8 default-collation=utf8_general_ci
|
重起MySQL:
[root@bogon ~]# /etc/rc.d/init.d/mysql restart
通过MySQL命令行修改:
1
| mysql> set character_set_client=utf8;
|
—–终端显示—–
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Query OK, 0 rows affected (0.00 sec) mysql> set character_set_connection=utf8; Query OK, 0 rows affected (0.00 sec) mysql> set character_set_database=utf8; Query OK, 0 rows affected (0.00 sec) mysql> set character_set_results=utf8; Query OK, 0 rows affected (0.00 sec) mysql> set character_set_server=utf8; Query OK, 0 rows affected (0.00 sec) mysql> set character_set_system=utf8; Query OK, 0 rows affected (0.01 sec) mysql> set collation_connection=utf8; Query OK, 0 rows affected (0.01 sec) mysql> set collation_database=utf8; Query OK, 0 rows affected (0.01 sec) mysql> set collation_server=utf8; Query OK, 0 rows affected (0.01 sec)
|
—-终端继续输入—-
1
| mysql> show variables like 'character_set_%';
|
—-终端显示—–
1 2 3 4 5 6 7 8 9 10 11 12 13
| + | 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/ | + 8 rows in set (0.03 sec)
|
—-输入命令—-
1
| mysql> show variables like 'collation_%';
|
——终端显示—–
1 2 3 4 5 6 7 8
| + | Variable_name | Value | + | collation_connection | utf8_general_ci | | collation_database | utf8_general_ci | | collation_server | utf8_general_ci | + 3 rows in set (0.04 sec)
|
修改时间:
2012年3月18日 15:09:14
这个问题差不多一个月没有解决 CSDN上很多朋友提供了N多办法!但是都因为要改这改那很麻烦。现在是晚上1:24 (07/5/25夜)问题解决总结如下:
环境:mysql5.0+myeclipse4.1+tomcat5.0 全部使用默认编码方式
1:插如数据到mysql中:在页面上加入本页的编码方式
1
| <%@ page contentType="text/html;charset=gb2312" %>
|
把你要插入的中文文字由gb2312转变为iso-8859-1
1
| title = new String(title.getBytes("GB2312"), "ISO-8859-1");
|
注意此页面千万别在数据库的URL后面加任何编码方式!
1
| conn = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/zqswork","root","root");
|
2:从mysql中读出数据到页面:依然在页面上加如编码方式
1
| <%@ page contentType="text/html;charset=gb2312" %>
|
把你要读出的中文由iso-8859-1转变为gb2312
1
| <%username = new String(username.getBytes("ISO-8859-1"), "gb2312");%>
|
注意此页面一定要在数据库url处加入编码方式(与上面相反)
1
| conn = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/zqswork?useUnicode=true&characterEncoding=gb2312","root","root");
|
【findu_at】:
这个问题请注意3点:
1.创建数据库的时候:
1 2 3
| CREATE DATABASE `database` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
|
2.建表的时候
1 2 3 4
| CREATE TABLE `database_user` ( `ID` varchar(40) NOT NULL default '', `UserID` varchar(40) NOT NULL default '', ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
3.设置URL的时候 :
jdbc:mysql://localhost:3306/database?seUnicode=true&characterEncoding=UTF-8
这3个设置好了,基本就不会出编码问题了