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

今天出现了一个悲据的问题

 

有个mysql库用的是latin1编码。我用c#查询怎么都是乱码。无论加charset=latin1或set names latin1都没用

codenamemapcoderemarkorder_index
ALL_ALLËùÓÐALL_ALLËùÓÐ0
eeeePCxxxÔÚPC¶Ë´óÌü½øÐеÄÓÎÏ·10
fffÎÞÏßwxÔÚÎÞÏßÏà¹ØÖÕ¶ËÉϽøÐеÄÓÎÏ·20
aaaWGPeeeeÔÚ¸÷Àà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_32evx33的游戏10
ff_64da线wxxc进行的游戏20
ee_96WGPwgpfa的游戏30
ee_128aa端xzdbbb行的游戏40
-1未知-1未知99999

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

 

转载于:https://www.cnblogs.com/jiamao/archive/2012/03/16/2400782.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C连接MySQL需要使用MySQL连接器,并且需要引用System.Data命名空间和MySql.Data.MySqlClient命名空间。下面是一个示例代码,展示了如何使用C#连接MySQL数据库: ```csharp using System; using System.Data; using MySql.Data.MySqlClient; public class MySQLConnector { private MySqlConnection connection; public MySQLConnector(string connectionString) { connection = new MySqlConnection(connectionString); } public void Connect() { try { connection.Open(); Console.WriteLine("数据库连接成功!"); } catch (Exception ex) { Console.WriteLine("数据库连接失败:" + ex.Message); } } public void Disconnect() { connection.Close(); Console.WriteLine("数据库连接已断开!"); } public DataTable SelectData(string tableName, string columns, string condition) { DataTable dataTable = new DataTable(); string sql = ""; if (string.IsNullOrEmpty(condition)) { sql = "SELECT " + columns + " FROM " + tableName; } else { sql = "SELECT " + columns + " FROM " + tableName + " WHERE " + condition; } MySqlCommand command = new MySqlCommand(sql, connection); MySqlDataAdapter adapter = new MySqlDataAdapter(command); adapter.Fill(dataTable); return dataTable; } public int UpdateData(string tableName, string columnsAndValues, string condition) { string sql = "UPDATE " + tableName + " SET " + columnsAndValues + " WHERE " + condition; MySqlCommand command = new MySqlCommand(sql, connection); int rowsAffected = command.ExecuteNonQuery(); return rowsAffected; } } ``` 以上代码展示了一个MySQL连接器的基本操作,包括连接数据库、断开连接、查询数据和修改数据。你可以根据自己的需求进行相应的修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值