Java unicode在哪里可以找到示例N字节的unicode字符

Moh*_*uur 6 java unicode codepoint sample-data

我正在寻找样本1字节,2字节,3字节,4字节,5字节和6字节的unicode字符.任何指向所有不同unicode字符的引用的链接以及它们有多大(按字节顺序)都将非常感激.我希望这个参考也有代码点\uXXXXX.

axt*_*avt 8

没有"1字节,2字节,3字节,4字节,5字节和6字节unicode字符"这样的东西.

您可能会谈论Unicode字符的UTF-8表示.类似地,Java中的字符串在内部以UTF-16表示,因此Java char类型表示UTF-16 的16位代码单元,并且每个Unicode字符可以由一个或两个这些代码单元表示,并且每个代码单元可以用\uxxxx字符串文字表示(请注意,这些序列中只有4个十六进制数字,因为代码单位是16位长).

因此,如果需要使用UTF-8和UTF-16表示形式引用Unicode字符,可以查看fileformat.info的表.

也可以看看:


Cow*_*wan 7

正如axtavt指出的那样,n字节Unicode字符的概念毫无意义; 假设你的意思是UTF-8,那么一个非常简单的表可以帮助你进行测试等,可能如下所示.请注意,所有示例字符都适用于我的浏览器(Ubuntu上的Chrome),但您的里程可能会因显示,复制/粘贴等因素而异.

UTF-8 bytes  Start    End       Example Character
1            U+0000   U+007F    ! EXCLAMATION MARK U+0021)
2            U+0080   U+07FF    ¶ PILCROW SIGN (U+00B6)
3            U+0800   U+FFFF    ? PER TEN THOUSAND SIGN (U+2031)
4            U+10000  U+1FFFFF   MUSICAL SYMBOL SIXTEENTH NOTE (U+1D161)
Run Code Online (Sandbox Code Playgroud)

理论上,UTF-8中可以有5或6字节值,但Unicode的32位地址空间实际上限制为最大10FFFF,因此不需要超过4个字节.

请注意,这里有一个重要的警告:Java的char不是一个Unicode字符; 它是UTF-16的16位代码单元,并且看到将非BMP字符(如上面的U + 1D161)视为2个字符的数据流并且相应地使用UTF-8并不罕见.例如:

Character: U+1D161
UTF-8 encoding: 0xF0 0x9D 0x85 0xA1
UTF-16 encoding: 0xD834 0xDD61
UTF-16 code points individually encoded as UTF-8: 0xED 0xA0 0xB4 0xED 0xB5 0xA1
Run Code Online (Sandbox Code Playgroud)

请注意,这具有明显显示6字节UTF-8字符的效果,但事实上UTF-8不允许这样做.UTF-8必须是原始代码点的编码,而不是代表这些点的UTF-16代码单元的编码.这并不意味着你不会在野外看到它......

  • 不,它不是有效的 UTF-8。我在回答中说过。你似乎非常强烈地同意我的看法。不过不知道 CESU-8 TR,很好的信息,谢谢。 (2认同)

And*_*ich 3

  • 这些并没有告诉我这些代码点代表多少字节。我在哪里可以找到这个? (3认同)