我在数据库表中插入两个(É (0xC389) and П (0xD0BF))
字符时遇到了问题,该字符也具有字符集 UTF-8.和排序规则 UTF-8。这两个角色都在范围。U+0800 - U+FFFF
.所以,我知道这两个字符需要 16 位
奇怪的是,É (0xC389)
从DBVisualizer插入到表中并正常显示,但П (0xD0BF)
没有正确保存。我首先想到,可能是客户端问题,但为什么它发生在与另一个字符位于同一范围内的 1 个字符上?
我对这种行为感到非常惊讶。所以,我不明白,如果我对 UTF-8 的理解是错误的,或者它真的是一个 DBVisualizer 错误,或者我错过了什么?
你的第一句话是错误的。
您是否正在寻找拉丁文和西里尔文的混合体? 还是韩文?
UTF-8 Hex Unicode Visible Meaning
C389 201=x00C9 É LATIN CAPITAL LETTER E WITH ACUTE
D09F 1055=x041F П CYRILLIC CAPITAL LETTER PE
EC8E89 xC389 쎉 HANGUL SYLLABLE SSENJ
ED82BF xD0BF 킿 HANGUL SYLLABLE KIH
也就是说,É
是 Unicode U+00C9
("codepoint 201"(,并且在文本中使用时编码为十六进制C389
。 (等(
16 位 UTF-8;另外两个需要 24 位。 MySQL的CHARACTER SET
utf8或utf8mb4也是如此。
看看你是否可以让DBVisualizer使用UTF-8,而不是Unicode。