一、前言

      数据库是我们软件开发中一个非常重要的组成部分,以前小编使用的是SQL Server,没有遇到过存储的中文是乱码的情况,后来在ssh的项目中使用的是MySQL的项目,遇到了乱码的问题,只要向数据库中存储中文数据就会是乱码,存储英文就没有问题,小编通过研究了研究把这中问题总结了一下:

二、乱码解决方案

      想到乱码自然而然的想到了是数据格式不对的原因:于是小编研究了自己的代码的格式,常用的格式有:UTF-8,GBK,GB2312

      ①UTF-8(8-bit Unicode Transformation Format)在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。

      ②GBK (Chinese Internal Code Specification)《汉字内码扩展规范》

      ③GB2312 国标码 信息交换用汉字编码字符集,汉字处理、汉字通信等系统之间的信息交换,通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB 2312。

      了解更多,猛戳这里。

三、解决方案

  • 先从MySQL入手

      检查数据库、数据表、数据字段的编码格式,是否为utf-8.不是的改成utf-8.通过客户端检查就很简单了,修改数据库属性,小编使用的是utf8。




【数据库】向MySQL数据库存中文显示乱码_sql server





【数据库】向MySQL数据库存中文显示乱码_mysql_02



  • 从编辑软件入手。

      以前小编在做.Net的项目的时候也遇到过这种情况,当时是修改了配置文件中的链接数据库的语句,可以看出小编在语句中添加了charset=gb2312,这个可以把我们的数据存储转化为gb2312。

<add key="ConnectionString" value="server=192.168.21.185;database=ymgj;uid=root;pwd=123456;charset=gb2312;allow zero datetime=true"/>

      同理在java中同样可以使用这样的方法,在java中我们使用的是jdbc链接数据库,只需要添加?useUnicode=true&characterEncoding=utf8:

jdbc.driver = com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///shop?useUnicode=true&characterEncoding=utf8
jdbc.user=root
jdbc.password =123

      到这里就解决了向数据库存储数据是乱码的问题了。如果有更好的办法小编会在以后向大家更新。

四、小结

      通过这次总结,算是对以前学习的知识的总结,也是为自己以后的学习打下坚实的基础,办事要牢固,做事要严谨,这一切都会在代码中体现出来。最后加油吧!everybody!