2008-10-24 76 views
1

我想知道是否有人曾經遇到過這個。我有一位在其產品描述字段中使用特殊字符的客戶。如果我們使用它們的HTML等價物,更新到MySQL數據庫可以正常工作,但如果使用了字符本身(從字符映射或Word中假設的複製),它將失敗。當使用特殊字符時MySQL更新錯誤

有沒有人見過這種行爲?這種情況下的字符是ø - 並且我們似乎無法對其進行替換(至少在ASP中),因爲字符作爲「?」出現在SQL字符串中。

任何建議非常感謝 - 謝謝!

回答

0

您是否嘗試過將表的排序規則設置爲utf-8或其他非latin1/ascii。

2

這表明數據庫(連接)和實際數據之間的字符集不匹配。

很可能,您在您的網站上使用ISO-8859-1,但MySQL認爲它應該獲得UTF-8。

http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html描述要檢查的內容以及如何更改它。最簡單的方法可能是在連接到數據庫時運行查詢「SET NAMES latin1」(假設這是您需要的字符集)。作爲Unicode的忠實粉絲,我建議完全切換到UTF-8,但我意識到這並不總是一個可行的選擇。

編輯:@markokocic:整理僅指示排序順序。雖然這當然應該與您的字符集匹配,但它不會影響可以存儲在字段中的字符範圍。

+0

感謝您的指點。客戶端,連接和結果設置爲UTF-8,數據庫和服務器設置爲latin1。我是否正確地假設數據庫和服務器需要UTF-8? – Katy 2008-11-06 17:29:54