我不得不从stringByAddingPercentEscapesUsingEncoding切换到CFURLCreateStringByAddingPercentEscapes,因为它不会转义问号(?)。我很好奇,到底是什么不逃避,和部分逃逸VS RFC 3986.stringByAddingPercentEscapesUsingEncoding转义的字符是什么?
7
A
回答
1
一些好的类别已经为只是做创建的理由,你需要的东西: http://iosdevelopertips.com/networking/a-better-url-encoding-method.html http://www.cocoanetics.com/2009/08/url-encoding/
离开的理由某些字符超出了我...除了说功能的定义是:Returns a representation of the receiver using a given encoding to determine the percent escapes necessary to convert the receiver into a legal URL string.
为了完全正确,+和&是合法的字符,而一个空格不是。因此,该方法将正确地转义一个空格,但保留完好无损。
阅读RFC2396 http://www.ietf.org/rfc/rfc2396.txt - 定义了一组保留和未保留的字符。我的猜测是这些字符都没有被stringByAddingPercentEscapesUsingEncoding转义。
5
使用CFStringRef时,请注意不要在转换时泄漏内存。这就是我想出的与拉丁字符和其他人一起工作的东西。我用这个来逃避我的参数,而不是整个URL。根据您的使用情况,您可能需要添加或删除“escapeChars”中的字符
CFStringRef escapeChars = (CFStringRef)@"%;/?¿:@&=$+,[]#!'()*<>¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ \"\n";
NSString *encodedString = (__bridge_transfer NSString *) CFURLCreateStringByAddingPercentEscapes(NULL, (__bridge_retained CFStringRef) url, NULL, escapeChars, kCFStringEncodingUTF8);
我希望这有助于。
相关问题
- 1. stringByAddingPercentEscapesUsingEncoding的反义词是什么?什么函数取出%转义?
- 2. Ruby中的转义字符是什么?
- 3. 什么转义字符\ u000a
- 4. 转义字符 - 什么对
- 5. 什么是转换字符?
- 6. 为什么repr()添加转义字符?
- 7. 什么字符将PreparedStatement转义?
- 8. \ x1a字符的含义是什么
- 9. Ruby中“$”字符的含义是什么?
- 10. Python/MySQL组合的最佳转义字符策略是什么?
- 11. 什么是SQL代码片段文件的转义字符
- 12. 什么是JAD文件中属性的转义字符/序列
- 13. PostgreSQL中连字符( - )的转义序列是什么
- 14. 什么是SSIS表达式生成器的转义字符?
- 15. 什么是半coloon转义字符(;)在XSLT
- 16. 什么字符应该在sql字符串参数中转义
- 17. 为什么我的字典为字符串添加额外的转义字符?
- 18. 字符后面的字符是什么?
- 19. 什么是符合此转换的字符编码:从“§”到“Ç”?
- 20. 为什么转义字符变成像python中的\ x0这样的字符串?
- 21. 在Oracle的to_char中转义非格式字符的最佳方法是什么?
- 22. '='和';'是什么意思?字符在.bat文件中的含义是什么?
- 23. 转义正是在javascript中是什么
- 24. 转义字符
- 25. 转义字符
- 26. 转义字符,
- 27. 为什么在字符串中使用javascript转义字符的引号需要是\\'而不是\'
- 28. 什么是System.Console.In.ReadToEnd的转义键序列?
- 29. C#字符转义没有得到什么的预期
- 30. mysql真正的转义字符串什么也没有返回
现在我只需要几分钟时间阅读该文档... :) – 2012-03-28 08:17:43