来自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编码的主要内容,如果未能解决你的问题,请参考以下文章

将NSString转换成UTF8编码的NSString

CBP 外设名称。编码问题

获取文本文件的编码,自动区分GB2312和UTF8

iOS NSString 转换编码格式ISO-8859-1

iOS NSString 转换编码格式ISO-8859-1

如何在 ios 中将 Base64 编码的 NSString 转换为字节数组(Java)?