爲什麼MySQL不存儲unicode字符?是的,這是一種罕見的象形文字,你不會在瀏覽器中看到它。
UTF16是U+2B5EE
MySQL不想存儲unicode字符
Warning: #1366 Incorrect string value: '\xF0\xAB\x97\xAE' for column 'ch' at row 1
是否有可能存儲在MySQL這個角色?
爲什麼MySQL不存儲unicode字符?是的,這是一種罕見的象形文字,你不會在瀏覽器中看到它。
UTF16是U+2B5EE
MySQL不想存儲unicode字符
Warning: #1366 Incorrect string value: '\xF0\xAB\x97\xAE' for column 'ch' at row 1
是否有可能存儲在MySQL這個角色?
MySQL
僅支持基本多語言平面中的字符(0x0000
- 0xFFFF
)。
如果你是這架飛機,你的角色就出來了。
嘗試存儲的代名詞,而不是:)
更新:
MySQL 5.5.3
和(這並非沒有GA還)如果你使用UTF8MB4
encoding支持增補字符。
MySQL中的utf8已經有了數天的麻煩。現在我知道爲什麼了!謝謝! – 2012-01-24 12:26:45
首先:你的說法
UTF-16是U + 2B5EE
稍有不當。 U+2B5EE
是Unicode 代碼點的表示法,只是一個整數 - 一個抽象代碼 - 而UTF16是一個charset編碼(可能的Unicode編碼之一,正如UTF-8)。現在
,假設你指的是代碼點,U+2B5EE
是BMP(第一個64K Unicode代碼點)之外,它似乎MySQL的有little or no support for them。所以我懷疑你運氣不好。
由於此問題發佈,MySQL 5.5.3發佈,支持utf8mb4
編碼,它提供了完整的Unicode支持。切換到此字符集而不是utf8
將解決您的問題。我最近寫過a detailed guide on how to switch from MySQL’s utf8
to utf8mb4
。如果你按照那裏的步驟,一切都應該正常工作。這裏是直接鏈接到在這個過程中每個步驟都會:
我懷疑你的問題可以通過以下步驟5來解決。希望這有助於!
你可能想檢查這個http://bugs.mysql.com/bug.php?id=14052它似乎有關。 – xycf7 2010-04-22 15:49:31