2016-03-04 75 views
0

试图URL解码与在IOS /目标C特殊字符组成的字符串URL解码特殊字符 - AAO

串为 “F%F6rv%E5nad”

试图使用

CFURLCreateStringByReplacingPercentEscapesUsingEncoding() 
该方法

[stringToConvert stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

两个返回null。

我想回到 “Förvånad”

+0

的正确解码字符串返回一个畸形的UTF-8序列。所以,给定的字符串“Förvånad”没有正确编码。为了百分比编码正确,任何字符串必须首先表示为UTF-8字节序列。然后,百分比编码应用于八位组。请参阅[RFC 3986](https://tools.ietf.org/html/rfc398) – CouchDeveloper

回答

2

的字符串编码Latin1的

NSString *string = @"f%F6rv%E5nad"; 
NSString *result = [string stringByReplacingPercentEscapesUsingEncoding:NSISOLatin1StringEncoding]; 
NSLog(@"%@", result); // förvånad 
+0

这些代码也可用于UTF-8。 – trojanfoe

+0

@trojanfoe不是在我的机器上,也不是在Swift操场上,也不在ObjC – vadian

+0

我用[本页](http://www.utf8-chartable.de/)检查代码。然而,0x7f以上的字符需要两个字节进行编码,所以我不认为它们可能是UTF-8,所以我认为你是对的。 – trojanfoe