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

    技术2022-05-19  27

    最近在学习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_cidefault-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        


    最新回复(0)