最近在学习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.optdefault-character-set=latin1default-collation=latin1_swedish_ci为default-character-set=utf8default-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