为什么MySQL不会存储unicode字符?是的,这是一个罕见的象形文字,你不会在浏览器中看到它
UTF16为
U+2B5EE
Warning: #1366 Incorrect string value: '\xF0\xAB\x97\xAE' for column 'ch' at row 1
是否可以在MySQL中存储此角色?
答案 0 :(得分:14)
MySQL
仅支持基本多语言平面(0x0000
- 0xFFFF
)中的字符。
如果这架飞机你的角色出局了。
尝试存储同义词:)
<强>更新强>
如果您使用UTF8MB4
encoding, MySQL 5.5.3
和on(尚未通过GA)确实支持补充字符。
答案 1 :(得分:2)
首先:你的陈述
UTF16是U + 2B5EE
有些不对劲。 U+2B5EE
是Unicode codepoint 的符号,只是一个整数 - 一个抽象代码 - 而UTF16是一个字符集编码(可能的Unicode编码之一,就像UTF-8一样)。 / p>
现在,假设你的意思是代码点,U+2B5EE
在BMP之外(第一个64K unicode代码点),似乎mysql有little or no support for them。所以我怀疑你运气不好。
答案 2 :(得分:1)
自发布此问题以来,发布了MySQL 5.5.3,它支持utf8mb4
编码,该编码提供完整的Unicode支持。切换到此charset而不是utf8
可以解决您的问题。
我最近写过a detailed guide on how to switch from MySQL’s utf8
to utf8mb4
。如果你按照那里的步骤,一切都应该正常工作。以下是该流程中每个步骤的直接链接:
我怀疑你的问题可以通过以下步骤5来解决。希望这会有所帮助!