Mysql 5 数据库 中文乱码问题的解决
昨天折腾了一下自己的网站,试图进行一些迁移工作,这其中遇到的首要问题是Mysql的乱码问题。
由于Mysql是从版本 4迁移到Version 5的,原来的字符集是latin1,现在是UTF8,这就遇到了经典的乱码问题,即使通过phpadmin来访问,也是一片纷乱,还好在前端的展现正常。
在网上搜一下,很多帖子和方法,最后我通过如下步骤,终于纠正了多年来的乱码问题。
首先乱码是由于字符集的变化和混乱造成的。
[root@localhost plugins]# /mysql -hlocalhost -ueygle -p eygle
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \\g.
Your MySQL connection id is 1693469
Server version: 5.0.45 Source distribution
Type \'help;\' or \'\\h\' for help. Type \'\\c\' to clear the buffer.
mysql> show variables like \'%char%\';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /opt/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)
现在的字符集是utf8,但是由于原来是latin1的字符集,我使用latin1进行导出:
mysqldump -hlocalhost -ueygle -p --default-character-set=latin1 blog >blog.sql
这样导出之后,如果打开看,正文应当都是正常显示才对,然后更改字符集,将所有表的字符集设置改为utf8,在vim中的命令是:
:%s/latin1/utf8/g
再执行导入操作:
mysql -hlocalhost -ueygle -p eyglenew < blog.sql
这样我终于看到了久违的,正确的中文,现在的数据库字符集看起来是这个样子的:
mysql> show variables like \'%char%\';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /opt/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)
记录一下,供遇到此类情况的朋友参考。
建议继续学习:
- windows下压缩包在linux解压乱码的解决办法 (阅读:4166)
- Linux screen窗口中文乱码问题 (阅读:3941)
- linux下vim的编译以及终端乱码的最终解决方案 (阅读:3518)
- java中文乱码解决之道(六)—–javaWeb中的编码解码 (阅读:3141)
- 解决PHPMailer邮件标题中文乱码 (阅读:2621)
- 如何在PHP下载文件名中解决乱码 (阅读:2587)
- PHP截取汉字出现乱码的解决方法 (阅读:2580)
- Smarty截取中文乱码的解决办法 (阅读:2486)
- java中文乱码解决之道(一)—–认识字符集 (阅读:2392)
- 分割GBK中文遭遇乱码的解决 (阅读:2096)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:eygle 来源: Oracle Life
- 标签: 乱码
- 发布时间:2010-06-02 23:06:55
- [56] 如何拿下简短的域名
- [55] Oracle MTS模式下 进程地址与会话信
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [53] Go Reflect 性能
- [52] android 开发入门
- [51] 图书馆的世界纪录
- [50] 读书笔记-壹百度:百度十年千倍的29条法则
- [47] 【社会化设计】自我(self)部分――欢迎区
- [37] 程序员技术练级攻略
- [31] 视觉调整-设计师 vs. 逻辑