我不得不從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