• 热门专题

c#连mysql的latin1编码乱码问题

作者:家猫  发布日期:2012-03-16 20:29:20
Tag标签:latin1编码乱码  
  • 有个mysql库用的是latin1编码。我用c#查询怎么都是乱码。无论加charset=latin1或set names latin1都没用

     

code name mapcode remark order_index
ALL_ALL ËùÓÐ ALL_ALL ËùÓÐ 0
eeee PC xxx ÔÚPC¶Ë´óÌü½øÐеÄÓÎÏ· 10
fff ÎÞÏß wx ÔÚÎÞÏßÏà¹ØÖÕ¶ËÉϽøÐеÄÓÎÏ· 20
aaa WGP eeee ÔÚ¸÷ÀàwebÃÅ»§ÉϽøÐеÄÓÎÏ· 30
ccvb ÐÂÖÕ¶Ë xzd ÔÚ¸÷ÀàÐÂÖÕ¶ËÉϽøÐеÄÓÎÏ· 40
-1 δ֪ -1 δ֪ 99999

改什么编码都没有。

最后我在C#中调试时,发现connection中有个encoding属性。但它只有运行时可见,用的是gb2312

我就如此试了一下

string turnlatin1string(string source)        {            

 var en = System.Text.Encoding.GetEncoding("latin1");            

var bs = en.GetBytes(source);                        

var a = System.Text.Encoding.Default.GetString(bs);            

 return a;        

}


对每个字符串结果都如此转一下后正常了。
ALL_ALL 所有 ALL_ALL 所有 0
ff_32 e vx 33的游戏 10
ff_64 da线 wx xc进行的游戏 20
ee_96 WGP wgp fa的游戏 30
ee_128 aa端 xzd bbb行的游戏 40
-1 未知 -1 未知 99999

但这样很麻烦。有木有人有好的解决办法。库的编码不改的情况下.

延伸阅读:

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规