6

我正在寻找示例 1 字节、2 字节、3 字节、4 字节、5 字节和 6 字节 unicode 字符。任何指向所有不同 unicode 字符的某种引用的链接以及它们有多大(按字节)将不胜感激。我希望这个参考也有像\uXXXXX.

4

4 回答 4

8

没有“1 字节、2 字节、3 字节、4 字节、5 字节和 6 字节的 Unicode 字符”之类的东西。

您可能会谈论 Unicode 字符的 UTF-8 表示。同理,Java 中的字符串内部是用 UTF-16 表示的,所以 Javachar类型代表了一个 UTF-16 的 16 位代码单元,每个 Unicode 字符都可以用这些代码单元中的一个或两个来表示,每个代码单元可以表示为\uxxxx字符串文字(请注意,这些序列中只有 4 个十六进制数字,因为代码单元是 16 位长)。

因此,如果您需要 Unicode 字符及其 UTF-8 和 UTF-16 表示形式的参考,您可以查看fileformat.info 中的表格

也可以看看:

于 2011-05-19T18:43:19.887 回答
8

正如 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)

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

请注意,这里有一个重要的警告:Java不是Unicode 字符;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

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

于 2011-05-20T00:57:23.897 回答
3
  • 看看这个:http ://en.wikipedia.org/wiki/List_of_Unicode_characters 。
  • 还有这个:http ://www.unicode.org/charts/ 。
于 2011-05-19T18:30:50.643 回答
0

对于那些只追求实际样品的人这里有 4 个样品。

  1. a (1 字节, 0x61)
  2. µ(2 字节,0xb5)
  3. →(3字节,0x2192)
  4. (4 字节,0x1f431)

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=ee0883bad3b1204f45889ea450a53cf4

我不完全确定为什么 0xb5 是 2 个字节而 0x2192 是三个字节。也许有人可以解释。

于 2021-04-03T13:48:58.073 回答