来自nsstring的ios UTF8编码
Posted
技术标签:
【中文标题】来自nsstring的ios UTF8编码【英文标题】:ios UTF8 encoding from nsstring 【发布时间】:2012-08-02 21:28:34 【问题描述】:我收到一个未正确编码的 nsstring,例如“mystring%201,其中必须是“mystring 1”。如何替换所有可以解释为 UTF8 的字符?我阅读了很多帖子,但不是完整的解决方案。请注意nsstring已经编码错误,我不是在问如何编码char序列。谢谢。
【问题讨论】:
你问的是 URI 编码吗? en.wikipedia.org/wiki/Percent-encoding 【参考方案1】:- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding
是你想要的。基本上像这样使用它:
newString = [myString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
【讨论】:
【参考方案2】:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
【讨论】:
【参考方案3】:检查Formatting String Objects 的Strings and Non-ASCII Characters
部分:
NSString *s = [NSString stringWithUTF8String:"Long \xe2\x80\x94 dash"];
【讨论】:
【参考方案4】:lblDate.text=[NSString stringWithCString:[[arrTripDetail valueForKey:Param_vCurrencySymbol] UTF8String] encoding:NSUTF8StringEncoding];
你可以将自定义表情符号转换为字符串
例如:
输入:\U20b9
输出:₹
【讨论】:
请不要对多个问题发布相同的答案。发布一个好的答案,然后投票/标记以关闭其他问题作为重复问题。如果问题不是重复的,调整您对该问题的回答。【参考方案5】:您只需要百分比编码/解码还是完整的 URL 编码/解码? -(NSString*)stringByReplacingPercentEscapesUsingEncoding: 如果它只是百分比编码就可以工作,但如果那里有完整的 URL 编码(例如,空格可能是 %20 或 +),那么你将需要类似 url 解码的东西three20 库(或在那里搜索,有很多例子说明如何做到这一点,例如URL decoding/encoding NSString)。
【讨论】:
以上是关于来自nsstring的ios UTF8编码的主要内容,如果未能解决你的问题,请参考以下文章