2012-08-02 121 views
9

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

+0

你在问URI编码吗? http://en.wikipedia.org/wiki/Percent-encoding – jcopenha 2012-08-02 21:31:02

+0

是的,URI编码 – Jaume 2012-08-02 21:41:36

回答

33

- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding是你想要什么,基本上就这样使用它:

newString = [myString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
2

检查的Formatting String ObjectsStrings and Non-ASCII Characters部分:。

NSString *s = [NSString stringWithUTF8String:"Long \xe2\x80\x94 dash"]; 
1

你想要百分比编码/解码还是完整的URL编码/解码? - (NSString *)stringByReplacingPercentEscapesUsingEncoding:将工作,如果它只是百分比编码,但如果有完整的URL编码那么(例如,一个空间可能是%20或+),那么你就需要像url解码three20图书馆(或在那里搜索,有很多如何做的例子,如URL decoding/encoding NSString)。

6
[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] 
2
lblDate.text=[NSString stringWithCString:[[arrTripDetail valueForKey:Param_vCurrencySymbol] UTF8String] encoding:NSUTF8StringEncoding]; 

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

如:

输入:\ U20b9

输出:₹

+0

请不要发布相同的答案多个问题。发布一个很好的答案,然后投票/标记以重复关闭其他问题。如果问题不重复,*定制您的问题答案。* – durron597 2015-09-04 13:40:03