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 )。