c#連mysql的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

但這樣很麻煩。有木有人有好的解決辦法。庫的編碼不改的情況下.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM