使用àèòù字符进行stringWithContentsOfURL编码时出错

时间:2013-01-14 11:14:38

标签: iphone ios nsurl

我对此实现有疑问:

NSString *s = [NSString stringWithContentsOfURL:[NSURL URLWithString:site] encoding:NSUTF8StringEncoding error:&er];

字符串网站包含带有重音的字符,例如:àèòù每次字符串包含此字符之一时,例如此字符串:

http://...../Questa_é_la_mia_terra.html 

“s”字符串返回null,对于带有重音的其他字符也会发生这种情况,我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我找到了这个解决方案:

NSString * encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)unencodedString,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8 );

以这种方式似乎有效...来自这个网站:http://simonwoodside.com/weblog/2009/4/22/how_to_really_url_encode/

答案 1 :(得分:0)

首先使用sitestringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding进行编码。

请参阅Working with URLs