11

我收到一个未正确编码的 nsstring,例如“mystring%201,其中必须是“mystring 1”。如何替换所有可以解释为 UTF8 的字符?我阅读了很多帖子,但不是完整的解决方案。请请注意,nsstring 已经编码错误,我不是在问如何编码 char 序列。谢谢。

4

5 回答 5

34

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

newString = [myString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
于 2012-08-02T21:35:56.140 回答
6
[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
于 2014-10-15T08:52:34.930 回答
2

检查格式化字符串对象Strings and Non-ASCII Characters部分:

NSString *s = [NSString stringWithUTF8String:"Long \xe2\x80\x94   dash"];
于 2012-08-02T21:32:43.080 回答
2
lblDate.text=[NSString stringWithCString:[[arrTripDetail valueForKey:Param_vCurrencySymbol] UTF8String] encoding:NSUTF8StringEncoding];

你可以将自定义表情符号转换为字符串

例如:

输入:\U20b9

输出:¥</p>

于 2015-09-04T13:13:31.323 回答
1

您想要百分比编码/解码还是完整的 URL 编码/解码?-(NSString*)stringByReplacingPercentEscapesUsingEncoding: 如果它只是百分比编码就可以工作,但如果那里有完整的 URL 编码(例如,空格可能是 %20 或 +),那么你将需要类似 url 解码的东西three20 库(或在那里搜索,有很多如何做到这一点的示例,例如URL 解码/编码 NSString)。

于 2012-08-02T21:42:21.590 回答