Учитывая строку набора символов, такую как "utf-8", "iso-8859-1", "мы-ASCII" и т.д., является там каким-либо встроенным способом получить соответствующий NSStringEncoding в Какао?
Прямо сейчас я смотрю на просто создание NSDictionary, содержащего канонизированную версию имени, отображенного на NSStringEncoding, затем имея механизм поиска, который канонизирует вход таким же образом. Но нет ли действительно никакой способ получить NSUTF8StringEncoding, учитывая строку "UTF-8" и т.д.?
Вы должны пройти CoreFoundation.
CFStringConvertIANACharSetNameToEncoding
CFStringConvertEncodingToNSStringEncoding
Сначала преобразуйте набор символов IANA в значение CFStringEncoding (что не то же самое, что NSStringEncoding), а затем преобразуйте CFStringEncoding в NSStringEncoding.
NSString *encodingString = @"utf-8"
NSStringEncoding encoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef) encodingString));
Я не думаю, что это есть какой-либо встроенный способ достижения этого. Я думаю, что то, что вы предлагаете, - создание словаря со значениями - это разумный путь. Кодировок не так много, поэтому это должно быть довольно тривиально и, вероятно, быстрее, чем пытаться найти встроенный способ сделать это.