C#(WinForm) + MySQL的中文编码问题(希望找到MySQL中文编码的终极解决方案)
目前情况如下:
1、使用不同的管理工具,中文内容显示有乱码有正常(用哪个写进去的哪个就正常)
2、在SHELL界面中,通过set names ' '可以正常select/update/insert中文内容
3、在C#程序中select/update/insert就会出乱码
4、尝试过将数据库/表/字段均设置为utf8
5、尝试过在my.ini文件中配置 default-character-set = gbk
请用过的没用的的都帮忙看看。
过年了,如果你闲下来了,请动动手,实际做做试试。
如果把调通的代码贴上来了,分还可以再加。。
------解决方案--------------------顶一个吧
用mysql比较少啊
------解决方案--------------------我的mysql一直是乱码..... 反正使用其来没问题 就是查看起来比较麻烦...
------解决方案--------------------顶
------解决方案--------------------很早以前用过一次MYSQL 不熟 帮顶了
------解决方案--------------------http://yanfeng.org/blog/585/
http://www.williamlong.info/archives/475.html
------解决方案--------------------http://xue3.bokee.com/viewdiary.12320231.html
如果所有设置都已经改为GB2312的情况下,还会出现乱码问题,可能你的数据库是经过导入的.那么可以尝试下面的办法:
在你的数据库链接的php页面下找到类似的这样一段:
$this-> dbh = @mysql_connect($dbhost,$dbuser,$dbpassword);
在它的前面先执行一次connection的字符集更改:
$this-> query( "SET NAMES 'gb2312 ' ");
如果问题解决了,则可以肯定是你的数据库经过导入出现了问题.
------解决方案--------------------由程序insert/update的纪录在控制台select后可以正常显示吗?
如果同样有问题,可能你前端程序用的是另一种编码如utf8,后台数据库用gbk
在和数据库交互时,c#要做编码转换。
------解决方案--------------------mark