关于数据库乱码的问题,以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啦!
(系统字符集可以通过如下代码查看: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啦!
相关文章推荐
- MySQL数据库中数据库移植中的乱码问题
- 关于中国的字符集编码问题--纯粹个人的观点--中文乱码问题
- 关于hibernate中文写入mysql数据库乱码问题
- 关于mysql数据库乱码问题
- 关于mysql数据库中存放中文字段乱码问题解决方案
- Mysql:关于数据库数据读写的乱码问题
- HSQLDB学习心得(1)-关于SERVER模式下多个数据库的启动问题与数据库连接
- java链接mysql数据库并且写入数据并且解决写入数据库乱码问题
- 关于C++用ODBC连接数据库中文显示乱码的问题
- 关于建立MySQL数据库,中文出现乱码问题
- 解决关于导入数据到mysql数据库时出现的乱码问题
- 关于读取数据库时中文编程乱码的问题
- 关于网页中显示php查询数据库结果乱码问题
- 关于数据库乱码的问题
- 关于jsp连接sql server2005 写入数据库中文乱码的问题
- 关于Teradata数据库优化的一些个人心得
- 关于数据库插入数据出现乱码问题
- 关于乱码的问题,从数据库读取出来的是 ?????
- jsp关于数据库乱码问题
- 关于往数据库插入汉字时,显示乱码的问题