C#操作MySQL中文乱码的解决方案

2/9/2007来源:C#应用人气:13548

误区:
近几天来搜索网上资源介绍理论上的可选编码方案为:gb2312/gbk/utf8等支持双字节的编码类型均可,实际试验过程中发现并不是这样的。
   A、大家跟风都想使用utf8,但UTF8在处理中文时并非想像中的理想,Select/Update/Insert均出现乱码;
   B、gbk字符集远大于gb2312,是第二首选字符集,但在Server/Database设定为GBK字符集后,在程序中连接都不成功(not support),更不用说操作;

最终解决方案:
1、选用gb2312编码
2、设置my.ini文件中的默认编码
   分别在[MySQL]和[mysqld]配置段中增加或修改default_charater_set=gb2312
3、创建数据库时编码选用gb2312
4、创建表时编码选用gb2312,Collation选用gb2312_chines_ci(gb2312_bin没有去试验)
5、针对具体需要存放中文的字段设定编码选用gb2312,Collation选用gb2312_chines_ci(gb2312_bin没有去试验)

改进:
如果确实需要存放gbk编码字符,请在连接成功后执行set names gbk