一、前言
  数据库是我们软件开发中一个非常重要的组成部分,以前小编使用的是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。


  从编辑软件入手。
  以前小编在做.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
  到这里解决了向数据库存储数据是乱码的问题了。如果有更好的办法小编会在以后向大家更新。