使用stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding对URL编码NSString不编码@符号。解决这个问题的正确方法是什么?谢谢。如何对iPhone SDK中的@符号进行URL编码?
3
A
回答
10
的代码行,你已经有了后加入这个(并更改接收器等,以你自己的变量):
[escaped replaceOccurrencesOfString:@"@" withString:@"%40" options:NSCaseInsensitiveSearch range:wholeString];
如果你想确保一切进行编码,这里是最好的方法:
NSMutableString *escaped = [actionString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[escaped replaceOccurrencesOfString:@"&" withString:@"%26" options:NSCaseInsensitiveSearch range:wholeString];
[escaped replaceOccurrencesOfString:@"+" withString:@"%2B" options:NSCaseInsensitiveSearch range:wholeString];
[escaped replaceOccurrencesOfString:@"," withString:@"%2C" options:NSCaseInsensitiveSearch range:wholeString];
[escaped replaceOccurrencesOfString:@"/" withString:@"%2F" options:NSCaseInsensitiveSearch range:wholeString];
[escaped replaceOccurrencesOfString:@":" withString:@"%3A" options:NSCaseInsensitiveSearch range:wholeString];
[escaped replaceOccurrencesOfString:@";" withString:@"%3B" options:NSCaseInsensitiveSearch range:wholeString];
[escaped replaceOccurrencesOfString:@"=" withString:@"%3D" options:NSCaseInsensitiveSearch range:wholeString];
[escaped replaceOccurrencesOfString:@"?" withString:@"%3F" options:NSCaseInsensitiveSearch range:wholeString];
[escaped replaceOccurrencesOfString:@"@" withString:@"%40" options:NSCaseInsensitiveSearch range:wholeString];
[escaped replaceOccurrencesOfString:@" " withString:@"%20" options:NSCaseInsensitiveSearch range:wholeString];
[escaped replaceOccurrencesOfString:@"\t" withString:@"%09" options:NSCaseInsensitiveSearch range:wholeString];
[escaped replaceOccurrencesOfString:@"#" withString:@"%23" options:NSCaseInsensitiveSearch range:wholeString];
[escaped replaceOccurrencesOfString:@"<" withString:@"%3C" options:NSCaseInsensitiveSearch range:wholeString];
[escaped replaceOccurrencesOfString:@">" withString:@"%3E" options:NSCaseInsensitiveSearch range:wholeString];
[escaped replaceOccurrencesOfString:@"\"" withString:@"%22" options:NSCaseInsensitiveSearch range:wholeString];
[escaped replaceOccurrencesOfString:@"\n" withString:@"%0A" options:NSCaseInsensitiveSearch range:wholeString];
7
到URL编码的最佳方式是与此,从我的博客文章http://simonwoodside.com/weblog/2009/4/22/how_to_really_url_encode/:
NSString * encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)unencodedString,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
+1
上面的代码很好,但它缺少一些需要编码的字符。将此添加到代码..(CFStringRef)@“!*'\”();:@&= + $,/?%#[]%“ – AlBeebe 2011-02-18 06:26:14
相关问题
- 1. 对URL进行URL编码
- 2. 如何编码符号的URL与jQuery
- 3. 如何在JSP中对URL进行URL编码?
- 4. 如何在jQuery/JavaScript中对URL进行编码并在ASP.NET中进行解码
- 5. 在Python中对unicode特殊字符(符号)进行编码?
- 6. 如何对DataGridView的行进行编号?
- 7. 对字符进行编码
- 8. 如何在java中对url字符串进行编码,以便不在空格中加上+符号?
- 9. 对Iphone Sdk中的NSMutableArray中的字符串进行排序?
- 10. 如何在iPhone中对横向进行编码?
- 11. 如何在iPhone中对横向进行编码?
- 12. 如何在PHP中正确地对URL进行编码?
- 13. 如何避免在cronjob中对图像url进行硬编码?
- 14. 符号URL编码发出
- 15. 在URL编码中对字典进行编码
- 16. 对包含Unicode字符的URL进行编码
- 17. 对URL的字符串参数进行编码
- 18. 如何让ASP.NET HyperLink控件在Text属性中对&符号进行编码?
- 19. File.toURI不对加号进行编码
- 20. 如何在iPhone中实现URL编码?
- 21. &符号在url中编码为%2526
- 22. 在RSS提要的URL中对键值对进行编码
- 23. 如何在javascript中对url进行编码并在C中对其进行解码#
- 24. 为什么link_to仅对几个字符进行url编码?
- 25. 使用正则表达式对URL字符串进行编码
- 26. 如何URL使用R/RCurl对反斜杠进行编码
- 27. 如何在Erlang中对一个字符串进行XML编码?
- 28. 如何在ColdFusion中对字符串进行编码,排除“dot”
- 29. 如何对中文字符进行网址编码?
- 30. 如何在Android中使用Base64对字符串进行编码?
打我吧。现在所有去投票我的原始答案:-) – 2009-06-06 10:53:21