2010-08-16 49 views
2

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

如果我尝试使用控制台应用程序在数据库中插入一个特殊字符,我收到一个错误,说'错误的字符串值:'\ x81 etc'。如果我尝试显示它们,则会显示例如ü而不是ü。

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

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

感谢,

Annelie

+0

你能公关请提及有问题的行的十六进制转储('SELECT HEX(column)FROM table')? – NullUserException 2010-08-16 13:54:47

+0

@NullUserException - 426164656E2D57C3BC727474656D62657267是Baden-Württemberg的十六进制。 – annelie 2010-08-16 14:00:43

+0

好消息是,它在数据库中正确存储为UTF-8。 – NullUserException 2010-08-16 14:13:07

回答

3

设置连接字符串,如下所示:

"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它)

+0

Yessssss!那就是诀窍,非常感谢你! – annelie 2010-08-16 14:26:32