【问题标题】:Problems displaying/inserting special characters, MySql ASP.NET显示/插入特殊字符的问题,MySql ASP.NET
【发布时间】:2010-08-16 13:52:03
【问题描述】:

我遇到了插入和正确显示特殊字符的问题。它是一个 ASP.NET 3.5 应用程序 (C#),数据库是 MySql。

如果我尝试使用控制台应用程序将特殊字符插入数据库,我会收到一条错误消息,提示“字符串值不正确:'\x81 等”。如果我尝试显示它们,它会显示例如 ü 而不是 ü。

它在我的本地机器上工作,我能找到的唯一区别(很可能是问题的根源)是 collat​​ion_server 在我的机器上设置为 latin1_swedish_ci,在开发服务器上设置为 utf8_general_ci,而 character_set_server 在我的机器上设置为 latin1机器,开发服务器上的utf8。 (两台机器上的其他所有内容都设置为 utf8。)

我认为 utf8 是最好用的,所以现在我不确定是否应该将开发服务器更改为与我的本地机器相同,即使用拉丁文,或者将我的本地机器更改为与开发服务器相同并寻找问题的另一种解决方案?有什么想法吗?

谢谢,

安妮

【问题讨论】:

  • 您能否提供相关行的十六进制转储 (SELECT HEX(column) FROM table)?
  • @NullUserException - 426164656E2D57C3BC727474656D62657267 是巴登-符腾堡的十六进制。
  • 好消息是,它被正确地以 UTF-8 格式存储在数据库中。
  • 在检索结果之前尝试运行以下查询:SET NAMES 'utf8'
  • @NullUserException - 你的意思是我应该在哪里运行它?在取出值的存储过程中?

标签: c# asp.net mysql special-characters


【解决方案1】:

如下设置你的连接字符串:

"server=<server>;port=<port>;database=<db>;uid=<uid>;pwd=<password>;charset=utf8;"

例子:

"server=localhost;port=3306;database=mydb;uid=root;pwd=root;charset=utf8;"

(添加charset=utf8

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 2014-11-17
    • 1970-01-01
    • 2015-12-31
    相关资源
    最近更新 更多