【发布时间】:2012-06-07 10:11:17
【问题描述】:
我有一个 WinForms 应用程序,它应该能够保存(到 db)并在以后显示非拉丁字符。我知道它与字符集有关。我的数据库和所有表的默认字符集都设置为 utf8。但这仍然不能保存保留其怪异的非拉丁字符:)。
经过一番谷歌搜索和 SO-ing 之后,我知道这是关于 SET NAMES 'utf8' 的东西。但是我在哪里应用这个? SO上有很多类似的线程处理php,他们说必须在查询开始时包含SET NAMES 'utf8'。但是在我的代码中,有数百个查询,并且修补每个地方都是一团糟。
如果我需要为此配置 MySQL,那么可以通过编程方式完成吗?我希望通过在连接字符串中设置这个有一些解决方案。
我试过这个:
conString = "SERVER=localhost;DATABASE=hi;UID=root;PASSWORD=;Min Pool Size=0;Max Pool Size=200;SET NAMES 'utf8'";
这给出了运行时错误,说连接字符串格式不正确。
【问题讨论】:
-
charset=utf8;怎么样? (见stackoverflow.com/questions/942277/…) -
@jglouie 是的,这很有效,我刚刚发布了答案。
-
我试图回答这个问题,但它被自动转换为评论。那好吧。很高兴它对你有用:)
-
@jglouie 天哪,简直就是自成体系!
标签: c# mysql ado.net non-latin character-encoding