it-swarm.com.ru

кодировка ios UTF8 из nsstring

Я получаю строку nsstring, которая неправильно закодирована, например, "mystring% 201, где должно быть" mystring 1. Как я могу заменить все символы, которые могут быть интерпретированы как UTF8? Я прочитал много сообщений, но не полное решение. Пожалуйста Обратите внимание, что nsstring уже закодирована неправильно, и я не спрашиваю о том, как кодировать последовательность символов. Спасибо.

11
Jaume

- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding это то, что вы хотите. в основном используйте это так:

newString = [myString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
33
Jesse Naugher
[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
6
Osama Khalifa

Проверьте раздел Strings and Non-ASCII Characters в Форматирование строковых объектов :

NSString *s = [NSString stringWithUTF8String:"Long \xe2\x80\x94   dash"];
2
A-Live
lblDate.text=[NSString stringWithCString:[[arrTripDetail valueForKey:Param_vCurrencySymbol] UTF8String] encoding:NSUTF8StringEncoding];

Вы можете конвертировать и получить пользовательские эмодзи в строку

например: 

вход:\U20b9 

Результат: ₹

2
Mehul

Вы хотите только процентное кодирование/декодирование или полное URL-кодирование/декодирование? - (NSString *) stringByReplacingPercentEscapesUsingEncoding: будет работать, если это просто процентное кодирование, но если там есть полная кодировка URL (так, например, пробел может быть либо% 20, либо +), тогда вам нужно что-то вроде декодирования URL библиотека three20 (или поиск там, есть много примеров того, как это сделать, например декодирование URL/кодирование NSString ).

1
Michael