Java unicode在何处查找示例N字节unicode字符
我正在寻找示例1字节、2字节、3字节、4字节、5字节和6字节unicode字符。任何指向所有不同unicode字符及其大小(按字节)的某种参考的链接都将不胜感激。我希望这个参考资料也有类似于Java unicode在何处查找示例N字节unicode字符,java,unicode,sample-data,codepoint,Java,Unicode,Sample Data,Codepoint,我正在寻找示例1字节、2字节、3字节、4字节、5字节和6字节unicode字符。任何指向所有不同unicode字符及其大小(按字节)的某种参考的链接都将不胜感激。我希望这个参考资料也有类似于\uxxx 请查看以下内容: 还有这个: 没有“1字节、2字节、3字节、4字节、5字节和6字节unicode字符”这样的东西 您可能会谈论Unicode字符的UTF-8表示。类似地,Java中的字符串在UTF-16中内部表示,因此Javachartype表示UTF-16的一个16位代码单元,每个Unicode
\uxxx
- 请查看以下内容:
- 还有这个:
- 没有“1字节、2字节、3字节、4字节、5字节和6字节unicode字符”这样的东西
您可能会谈论Unicode字符的UTF-8表示。类似地,Java中的字符串在UTF-16中内部表示,因此Java
char
type表示UTF-16的一个16位代码单元,每个Unicode字符可以由一个或两个这些代码单元表示,每个代码单元可以用字符串文字表示为\uxxx
(请注意,这些序列中只有4个十六进制数字,因为代码单元为16位长)
因此,如果需要Unicode字符及其UTF-8和UTF-16表示形式的引用,可以查看
另请参见:
UTF-8字节开始结束示例字符
1 U+0000 U+007F!感叹号U+0021)
2 U+0080 U+07FF“皮尔克罗标志”(U+00B6)
3 U+0800 U+FFFF——每一万个符号(U+2031)
4 U+10000 U+1FFFF仅针对实际样品
这里有4个样品
a(1字节,0x61)
µ(2字节,0xb5)
→ (3字节,0x2192)
这些并没有告诉我这些代码点代表多少字节。我在哪里找到这个?@Mohamed:看看维基百科上的文章。它将为您提供Unicode代码点值与其长度(UTF-8表示形式)之间的对应关系。这是唯一一种超过四个字符的编码。换句话说,没有5+字节的utf-8字符?根据维基百科的文章,他们停在4点钟。@Mohamed,是的,没错。UTF-8编码字符理论上最多可以有六个字节长,但是16位BMP字符最多只有三个字节长。@Mohamed:perl-CS-e'print chr(0x101)| wc-c
prints 2,perl-CS-e'print chr(0x1020)| wc-c
prints 3,perl-CS-e'print chr(0x1F608)| wc-c
prints 4。对于UTF-8编码这些相应的代码点,这些答案以字节为单位。最高的合法Unicode代码点是0x10FFFF,但UTF-8可以编码更大的代码点。例如,在64位机器上:perl-CS-e'print chr(0xFFFF\u FFFF\u FFFF\u FFFF)'wc-c
报告13个字节。谢谢,这是一个很好的开始!!您还可以看看这两个站点:它有一个使用描述性名称的整洁查找功能,或者,如果您对基本的ASCII集感兴趣,那么尝试使用一个占用两个UTF-16块的代码点并从中生成两个UTF-8块是不正确的、不完整的和愚蠢的。您需要将其解码回单个代码点,并生成单个代码点作为回报。否则你会得到错误的答案问题是,当他们这样做的时候,那不是UTF-8。它是CESU-8,这是一个非常常见的错误,以至于Unicode标准不得不提到它。它不是UTF,因此不应用于外部数据交换。特别是。这是一个错误,Windows和/或Java用户如果不注意,往往会把事情搞砸。不,这不是有效的UTF-8。这是我在回答中说的。你似乎非常同意我的意见。不过,我不知道CESU-8TR,这是一条很好的信息,谢谢。当然,Java有一个写垃圾的“writeUTF”方法是没有帮助的。:)