2010-08-16 37 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