技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL --> Mysql 5 数据库 中文乱码问题的解决

Mysql 5 数据库 中文乱码问题的解决

浏览:2184次  出处信息

昨天折腾了一下自己的网站,试图进行一些迁移工作,这其中遇到的首要问题是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)

    记录一下,供遇到此类情况的朋友参考。

建议继续学习:

  1. windows下压缩包在linux解压乱码的解决办法    (阅读:4173)
  2. Linux screen窗口中文乱码问题    (阅读:3946)
  3. linux下vim的编译以及终端乱码的最终解决方案    (阅读:3523)
  4. java中文乱码解决之道(六)—–javaWeb中的编码解码    (阅读:3149)
  5. 解决PHPMailer邮件标题中文乱码    (阅读:2626)
  6. 如何在PHP下载文件名中解决乱码    (阅读:2596)
  7. PHP截取汉字出现乱码的解决方法    (阅读:2587)
  8. Smarty截取中文乱码的解决办法    (阅读:2492)
  9. java中文乱码解决之道(一)—–认识字符集    (阅读:2401)
  10. 分割GBK中文遭遇乱码的解决    (阅读:2103)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1