感觉很无奈。只能自己来处理了。
我一开始直接就用的mysql自带的test数据库了。直接建了T_User表,直接用mysql命令行insert和select,中文字符多是没有问题的。但是当我用SQL Manager 2007 For Mysql 客户端来直接插入时,问题出现了,中文全变成了乱码,开始一想可能是客户端的问题。于是用ASP.NET程序来处理的时候问题还是一样。按上面参考的文档问题也没有能解决。在一个无意之中看到Mysql 客户端上面显示 自带的 test数据库的编码格式是 lantin1。
![](https://i-blog.csdnimg.cn/blog_migrate/f2eebccf47c2553474a88a614959e787.gif)
呵呵找到了问题了。因为test库是mysql自带的数据库不变做大的改动。于是自己用客户端新建了一个库。在这里特别要重视的是在建库的时候一定要注意编码的格式选择。大家最好使用Mysql的客户端来建库,而不要使用sql脚本。应该mysql的默认编码格式不是 UTF8或者是gb2312的。
![](https://i-blog.csdnimg.cn/blog_migrate/f987035e71e1f62c39031834eb6069f6.gif)
到现在基本上乱码问题已经解决的差不多了。直接在客户端插入数据后,用客户端或者程序来访问不会出现乱码了。但是毕竟我通常多是用程序来完成数据库的操作的。当用程序进行插入后问题又出现了。乱码的问题又来了。但是现在的乱码不会和数据库相关了。想一想。在DBconnection中一个属性时设置链接数据库时的编码格式的。现在直接在web.config中将数据库链接字符串加上Charset属性就可以了。
Database=xxx;Server=localhost;User ID=root;Password=mysql;Charset=gb2312;
总结一下:
1.使用mysql5数据库时候,要主要库的编码格式。虽然在mysql5中带入了编码给日常使用习惯产生了影响不过这不的不说是mysql向企业级迈进。
2.建库时尽量使用mysql的客户端来处理。毕竟直接写sql脚本再强的高手也会又忘的时候。个人推荐EMS SQL Manager 2007 For Mysql ,以上的图多是在该客户端下截取的。并且在建库时最好用utf8的编码,这样省的其他的更改。
3.设置程序与mysql数据库链接时的编码格式。以ASP.NET为例,可以加上 charset属性。