关于Mysql乱码问题(hibernate里面)

最近在学习hibeenate,不过在学习过程中遇到了,mysql乱码的问题(数据编码不一致问题),

在Mysql中你如果在安装的时候没偶进行设置它默认编码是lainl(具体名字忘记了),

但是在我们读出来的时候java的编码不是这个是unicode 编码,你想编码的方式和解码的方式不一样

如果不产生乱码不就有鬼了,在这里我们首先要做的就是保证他们编码一致,有两种方式修改数据库编码,

一种是通过修改Mysql配置文件,修改Mysql目录下面my.ini里面的
default-character-set=GBK设置成为GBK,然后删掉以前的数据库,因为你以前存进去的是编码,他编码不会因为你

修改了配置而帮你修改数据,所以要删除数据库,重启数据库,在创建,其他命令在这里就不多做解释,

还有一种就是通过命令的方式修改数据库编码和系统默认编码格式,

 

 

.查看字符集设置

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>

其他的一些设置方法:

修改数据库的字符集
   mysql>use mydb

   mysql>alter database mydb character set utf-8;

创建数据库指定数据库的字符集

   mysql>create database mydb character set utf-8;

通过配置文件修改:

修改/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命令行修改:

mysql> set character_set_client=utf8;
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)


查看:
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8        

你可能感兴趣的:(关于Mysql乱码问题(hibernate里面))