ICU Unicode Normal против Fullwidth - PullRequest
       23

ICU Unicode Normal против Fullwidth

2 голосов
/ 03 февраля 2010

Я немного новичок в 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, есть ли способ указать всегда возвращать нормальный, а не полный?

Спасибо,

Ответы [ 3 ]

2 голосов
/ 03 февраля 2010

U + число является условным обозначением для кодовой точки Unicode. Не существует «значения» U.

U + 0020, например, является пробелом. Значение в памяти - 32 десятичных, 20 шестнадцатеричных.

Символы полной ширины - это совсем другая история.

Еще во времена 3270 года Ханзи занимал две позиции в памяти на дисплее. Таким образом, они также заняли две колонки на экране. Чтобы все выстраивалось аккуратно, IBM определила набор букв и цифр «полной ширины» (лучше было бы «двойной ширины»).

Если какой-то API ICU обеспечивает полную ширину, вы можете использовать нормализатор, чтобы избавиться от него. Вы также можете опубликовать билет в их систему, это кажется странным.

0 голосов
/ 03 февраля 2010
  • U + 20A9 (₩) - ВЫИГРЫШНЫЙ ЗНАК
  • U + FFE6 (₩) - ПОЛНЫЙ ЗНАК ВЫИГРЫША

Это наследие старых кодировок символов,«Ширина» влияет на макет.Спецификация Unicode гласит:

Варианты совместимости - это подмножество символов совместимости, и они дополнительно характеризуются тем, что представляют варианты существующих, обычных символов Unicode.Например, варианты совместимости могут представлять различные формы представления или стилизованные базовые буквы: надстрочные или подстрочные формы, разные формы глифов или вертикальные формы представления. Они также включают символы половинной или полной ширины из стандартов восточноазиатской кодировки символов , глифы контекстуальной формы арабского языка из существующих арабских кодовых страниц, арабские лигатуры и лигатуры из других сценариев и т. Д.Варианты совместимости также включают в себя идеограммы совместимости с CJK, многие из которых представляют собой второстепенные варианты глифов кодированной унифицированной идеографии CJK.

Включение этих форм в Unicode позволяет преобразовывать текст из (и в) более старых кодировок безпотеря смысла.

Ссылки:

0 голосов
/ 03 февраля 2010

«U» в «U + 2049» просто означает, что «2049» - это кодовая точка Unicode, значение символа Won в кодовом пространстве Unicode. Это обозначение используется в стандарте Unicode. За «U +» должно следовать шестнадцатеричное число с использованием не менее 4 цифр, например «U + 1234» или «U + 10FFFD».

...