Mysql latin1插入中文数据乱码

moondreamyou 2014-08-20 09:53:11
C#,用MySqlHelper插入中文数据到latin1的库表里面(server也是latin1),如果直接插入会乱码,除非在连接字符串中指定了chaset=latin1,且对字符插入做Encoding处理,查询也反Encoding,才不会乱码。
但这样很麻烦,请问有什么方法可以不用每次都Encoding,而直接插入中文到latin1表中,并直接检索?(PS:数据库是线上的,不能修改)

插入及查询会乱码的写法(改用参数化也是一样的结果):
INSERT INTO TB
(VALUE1)
VALUES('中文')

SELECT * FROM TB

不会乱码的写法(很麻烦,不知道有没有合理点的做法):
Conn="....charset='latin1';..."

INSERT INTO TB
(VALUE1)
VALUES('"+Encoding.GetEncoding("latin1").GetString(Encoding.Default.GetBytes("中文"))"')

查询后也要对每个值反Encoding才能正确看到中文:
Encoding.Default.GetString(Encoding.GetEncoding("latin1").GetBytes(dt.Rows[i][j].ToString()))

...全文
263 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
moondreamyou 2014-11-14
  • 打赏
  • 举报
回复
用MySqlHelper的话无法解决,就是要Encoding一下。
yktd26 2014-08-20
  • 打赏
  • 举报
回复
latin1是面向西欧编码,一共256个字符怎么能用来存中文
EdsionWang 2014-08-20
  • 打赏
  • 举报
回复
楼主看看这个帖子。 http://bbs.csdn.net/topics/320030942
moondreamyou 2014-08-20
  • 打赏
  • 举报
回复
自己顶顶...

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧