【发布时间】:2017-04-06 19:41:47
【问题描述】:
我在具有字符集 UTF-8.and Collation UTF-8 的数据库表中插入两个字符 。 (É (0xC389) and П (0xD0BF)) 时遇到问题。这两个字符都在U+0800 - U+FFFF 范围内。所以,我知道这两个字符需要16 bits
奇怪的是,É (0xC389) 正在从 DBVisualizer 插入到表中并正常显示,但 П (0xD0BF) 未正确保存。我首先想到,可能是客户端问题,但为什么它发生在与另一个字符在同一范围内的 1 个字符上?
我对这种行为感到非常惊讶。所以,我不明白,如果我对 UTF-8 的理解是错误的,或者它真的是 DBVisualizer 错误,还是我遗漏了什么?
【问题讨论】:
-
注意:U+0800 和 U+FFFF 之间的代码点在 UTF-8 中被编码为 24 位(3 个字节)。
-
@RandomGuy32 它确实需要 24 位,但保留了 8 位,所以只能使用 16 位,在这 24 位中
-
请提供更多错误渲染的字符;也许我能找到一个模式。
标签: mysql unicode utf-8 dbvisualizer