您的位置:首页 > 数据库 > MySQL

关于数据库乱码的问题,以mysql数据库为例(个人心得,勿喷)

2014-10-09 15:31 267 查看
如果要保证字符不乱码,最基本的原则是一定保证数据库中的编码和系统的编码一致。

(系统字符集可以通过如下代码查看:System.out.println("系统字符集:"+System.getProperty("file.encoding")); )

修改mysql的数据库文件my.ini可以修改mysql数据库的字符集,以由最初的配置latin1修改成gbk为例。

修改两处:default-character-set=latin1

改为:default-character-set=gbk

注意:1.修改后要重启数据库才行。

            2.通过在mysql客户端命令输入:show variables like 'character_set_%';查看各项是否都已经改成了相应的字符集
           +--------------------------+-----------------------------------------------------------------------------------+
          | Variable_name             | Value                       |
          +--------------------------+------------------------------------------------------------------------------------+
          | character_set_client          | gbk                        |
          | character_set_connection |

gbk                        |
          | character_set_database    | latin1                     |
          | character_set_filesystem   | binary                    |
          | character_set_results        |

gbk                        |
          | character_set_server         |

gbk                       |
          | character_set_system        | utf8                       |
          | character_sets_dir             |  D:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |
          +--------------------------+-------------------------------------------------------------------------------------+

           我们可以看出,并不是所有的条目都改成了gbk字符集,所以在这里建议如果只是一个测试数据库,可以删除后重新建立,那么之后所有的

          条目就会都成为gbk了。(分析原因:因为修改数据库字符集之前,数据的字符集character_set_database已经是latin1字符集了,所以只是

          通过简单的修改my.ini配置文件是不够的。)

         当然,如果你不希望删除已经建立的数据库,这里也有办法滴!这也是本文讲解的重点,搞了好久才发现。

         我们应该找到mysql安装目录下的data文件中,在那里存放了我们已经建立好的数据库,我们可以直接修改数据库选项文件:

         比如名为:SDU的数据库文件夹下有db.op,我们打开可以修改里面的选项:

         default-character-set=latin1

         default-collation=latin1_chinese_ci

         改成:

        default-character-set=gbk

        default-collation=gbk_chinese_ci

        这样就OK啦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: