ios UTF8编码从nsstring

我正在收到一个没有正确编码的nsstring,比如“mystring%201,其中必须是”mystring 1“,我怎样才能replace所有可以被解释为UTF8的字符?我读了很多post,但没有一个完整的解决scheme。注意,nsstring已经被编码错了,我不问如何编码字符序列,谢谢。

- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding是你想要的。 基本上这样使用它:

 newString = [myString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
 [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] 

检查格式化string对象的Strings and Non-ASCII Characters部分:

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

U可以转换&得到自定义表情符号string

例如:

input:\ U20b9

输出:₹

你想只是百分比编码/解码或完整的URL编码/解码? – (NSString *)stringByReplacingPercentEscapesUsingEncoding:将工作,如果它只是百分比编码,但如果有完整的URL编码那么(例如,一个空间可能是%20或+),那么你就需要像url解码(或search那里,有很多如何做到这一点的例子,如URL解码/编码NSString )。