Технические вопросы и ответы QA1235

Преобразование в предсоставленный Unicode

Q: Как я преобразовываю строку Unicode в ее предсоставленную форму?

A: Mac OS X и iOS обеспечивают множество APIs для преобразования в различные нормальные формы Unicode. Самыми простыми для использования являются методы NSString, показанные в Таблице 1.

Таблица 1  методы нормальной формы NSString

Метод

Имя нормальной формы

Общее название

- decomposedStringWithCanonicalMapping

D

анализируемый

- precomposedStringWithCanonicalMapping

C

предсоставленный

- decomposedStringWithCompatibilityMapping

KD

- precomposedStringWithCompatibilityMapping

KC

О нормальных формах

Определенные символы Unicode могут быть закодированы больше чем одним способом. Например, Á (Острое) может быть закодирован, любой предварительно сочинил, как U+00C1 (LATIN CAPITAL LETTER WITH ACUTE), или разложился как U+0041 U+0301 (LATIN CAPITAL LETTER сопровождаемый COMBINING ACUTE ACCENT). Предсоставленные символы более распространены в мире Windows, тогда как анализируемые символы более распространены на платформах Apple.

Можно найти намного больше информации о Unicode на консорциальном веб-сайте Unicode. В частности интереса Формы нормализации Unicode Приложения № 15 Стандарта Unicode.

Используя нормальные формы правильно

При работе в наших платформах Вы будете использовать смесь предсоставленного и анализируемого Unicode. Например, HFS Плюс преобразования все имена файлов к анализируемому Unicode, в то время как клавиатуры Macintosh обычно производят предварительно составленный Unicode. Это не проблема, пока Вы используете предоставленный системой APIs для текста процесса. APIs Apple правильно обрабатывает и предварительно составленный и анализируемый Unicode.

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



История версии документа


ДатаПримечания
14.09.2011

Переписанный для фокусирований на современных методах.

07.02.2003

Новый документ, описывающий, как преобразовать строку в предсоставленный Unicode.