MySQL 表与字段编码格式报错
一、数据库,表,字段编码格式都为latin1(iso-8859-1) 。当数据保存到数据库后,中文显示乱码。
解决办法:
1.在访问数据库连接串中添加编码格式:
<add key="MySqlConnectionString" value="Server=127.0.0.1;Port=3306;Uid=ttt;Pwd=ttt;Database=test_db;charset=gb2312" />
获取出来的中文信息没有问题。
注意:使用gb2312编码添加的中文信息,读取时也要使用相同编码格式,也就是存取的编码格式要一致;否则获取出来为乱码。
二、若获取的字符串为Latin1编码,在C#中可以做如下转换:
/// <summary>
/// Latin1(iso-8859-1) 转 gb2312 中文
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Latin1ToUtf8( string str) {
//这里的 gb2312 取决于 mysql连接字符串中设定的字符编码。
return Encoding.GetEncoding("gb2312").GetString(Encoding.GetEncoding("ISO-8859-1").GetBytes(str));
}