Как определить кодировку текста CString в iphone / iPad? - PullRequest
0 голосов
/ 30 марта 2011

У меня смешанный набор CString в другой кодировке текста.

Поскольку я не знаю исходную кодировку CString, как определить кодировку текста CString в iphone / iPad?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 30 марта 2011

Класс NSString предлагает некоторое обнаружение кодировки с +stringWithContentsOfFile:usedEncoding:error, но, похоже, он доступен только при загрузке из файла или URL-адреса. Я не уверен, сколько кодировок он использует или насколько он точен.

0 голосов
/ 30 марта 2011

Вы не можете решить эту проблему в общем случае без некоторой дополнительной информации, потому что одна и та же строка может быть допустимой в нескольких кодировках.Например, шестнадцатеричные значения 48 45 4C 4C D4 равны «АД» в iso-8859-1 и «АД» в кодировке KOI8-R.Любая из 8-битных кодировок будет практически неразличима, если только вы не начнете заниматься эвристикой, например, проверкой словаря (хммм ... выглядит как болгарский).

Одна из стратегий - сначала попробовать utf-8и затем вернитесь к назначенному 8-битному кодированию (например, iso-8859-1), если вход не сможет декодировать как utf-8.(В utf-8 являются байтовыми последовательностями, которые являются недопустимыми, поэтому есть большая вероятность, что строка в некотором произвольном 8-битном кодировании выдаст ошибку, если вы попытаетесь декодировать ее как utf-8).

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