2

我对 unicode 和 unicode 字符串有些陌生。我试图确定“全角”符号和普通符号之间的区别。

以这两个为例:

正常:http ://www.fileformat.info/info/unicode/char/20a9/index.htm

全角:http ://www.fileformat.info/info/unicode/char/ffe6/index.htm

我注意到全宽定义为 U+20A9 巧合的是 20A9 是正常的。那么U的值是多少?

当使用像 ICU 这样的库时,有没有办法指定总是返回正常而不是完整?

谢谢,

4

3 回答 3

2

U+number 是 Unicode 代码点的符号约定。U 没有“价值”。

例如,U+0020 是一个空格。内存中的值是 32 十进制,20 十六进制。

全角字符是另一回事。

回到 3270 时代,汉字在显示器的内存中占据了两个位置。所以他们也占据了屏幕上的两栏。为了使事情整齐排列,IBM 定义了一组“全角”(最好是“双角”)字母和数字。

如果某些 ICU API 提供全宽,您可以使用 Normalizer 来摆脱它。您也可以将票张贴到他们的票务系统,这似乎很奇怪。

于 2010-02-02T22:13:21.427 回答
0
  • U+20A9 (₩) 是赢牌
  • U+FFE6 (₩) 是全宽符号

这是旧字符编码的遗留问题。“宽度”影响布局。Unicode 规范说:

兼容性变体是兼容性字符的子集,并且具有代表现有普通 Unicode 字符的变体的进一步特征。例如,兼容性变体可能表示基本字母的各种表示形式或样式形式:上标或下标形式、变体字形形状或垂直表示形式。它们还包括来自东亚字符编码标准的半角或全角字符、来自预先存在的阿拉伯语代码页的阿拉伯语上下文形式字形、来自其他脚本的阿拉伯语连字和连字等等。兼容性变体还包括 CJK 兼容性表意文字,其中许多是编码的统一 CJK 表意文字的次要字形变体。

在 Unicode 中包含这些形式允许文本从(和)旧编码转换,而不会失去意义。

参考:

于 2010-02-02T22:17:00.500 回答
0

“U+2049”中的“U”只是表示“2049”是一个Unicode码位,即Unicode码空间中Won字符的值。它是 Unicode 标准中使用的一种表示法。“U+”后面应跟一个十六进制数,至少使用 4 位数字,例如“U+1234”或“U+10FFFD”。

于 2010-02-02T22:11:14.937 回答