Что означает каноническое NSUnicodeStringEncoding от Cocoa Touch? - PullRequest
1 голос
/ 30 января 2011

Это UTF-16? 32? Что-то еще?

Я хочу изучить это из соображений производительности, поскольку я конвертирую много строк из UTF-8 в "native NSString", и снижение производительности, похоже, падает на __CFFromUTF8, который является встроенным -в функции преобразования. Кстати, я просто предполагаю, что NSUnicodeStringEncoding - это то, что используется внутри, поскольку NSString fastestEncoding возвращает это значение (то есть для международных строк; при использовании ANSI возвращается MacRomans).

1 Ответ

2 голосов
/ 30 января 2011

Тестирование с использованием dataUsingEncoding: означает, что NSUnicodeStringEncoding - это UTF-16 с прямым порядком байтов, которому предшествует метка порядка байтов (как на симуляторе, так и на реальном устройстве), а в Руководстве по программированию строки Apple для Cocoa написано " Объекты NSString являются концептуально UTF-16 с платформой endianness ", поэтому я думаю, что разумно предположить, что UTF-16 используется внутри.

(в том же руководстве говорится, что «это не обязательно подразумевает что-либо об их внутреннем механизме хранения», поэтому они полностью резервируют за собой право изменить это в будущем)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...