Кодирование вы хотите NSISOLatin1StringEncoding
:
NSString *latin = [NSString stringWithCString:"M\xe4da Primavesi" encoding:NSISOLatin1StringEncoding];
НО вы заметите, что это печатает MÚ Primavesi
. Это потому, что \x
жадный и интерпретирует "da"
как часть шестнадцатеричного \xe4da
. Вы должны найти способ отделить часть "\xe4"
с частью "da"
.
Это работает:
NSString *latin = [NSString stringWithCString:"M\xe4""da Primavesi" encoding:NSISOLatin1StringEncoding]; // prints Mäda Primavesi
Я предлагаю вам кодировать латинский C-String с использованием UTF-8 строки "M\u00e4da Primavesi"
вместо этого, и расшифровать его с NSUTF8StringEncoding
.
Всем вы, ребята, думаете, что это похоже на UTF-8: Нет, это не так. Я не буду спускать вниз, но ваши ответы бывают быстрыми и неправильными. Будьте осторожны при отправке ответов. – user3125367
Является ли ваша строка закодированной в приложении или она отправляется из другого места, как сервер? Мой ответ ниже объясняет некоторые результаты с вашего \ x экранирования. –