Ho dovuto passare da stringByAddingPercentEscapesUsingEncoding a CFURLCreateStringByAddingPercentEscapes perché non sfugge punti interrogativi (?). Sono curioso che cosa esattamente lo fa sfuggire, e la logica dietro la fuoriuscita parziale vs RFC 3986.Quali sono i caratteri che stringByAddingPercentEscapesUsingEncoding escapes?
risposta
Alcuni buoni categorie sono state create per fare proprio quello che vi serve: http://iosdevelopertips.com/networking/a-better-url-encoding-method.html http://www.cocoanetics.com/2009/08/url-encoding/
Il razionale per lasciare certi personaggi fuori è oltre me ... tranne per dire che la definizione della funzione è: 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.
Per essere completamente corretti, + e & sono caratteri legali all'interno di un URL, mentre uno spazio non lo è. Quindi il metodo uscirà correttamente da uno spazio, ma lascia + intatto e & intatto.
Lettura RFC2396 http://www.ietf.org/rfc/rfc2396.txt - è definito un set di caratteri riservati e non riservati. La mia ipotesi è che nessuno di questi personaggi sia sfuggito da stringByAddingPercentEscapesUsingEncoding.
Fare attenzione a non perdere memoria nelle conversioni quando si utilizza CFStringRef. Ecco cosa mi è venuto in mente per lavorare con personaggi latini e altri. Lo uso per sfuggire ai miei parametri, non all'intero URL. A seconda del caso d'uso, potrebbe essere necessario aggiungere o rimuovere caratteri da "escapeChars"
CFStringRef escapeChars = (CFStringRef)@"%;/?¿:@&=$+,[]#!'()*<>¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ \"\n";
NSString *encodedString = (__bridge_transfer NSString *) CFURLCreateStringByAddingPercentEscapes(NULL, (__bridge_retained CFStringRef) url, NULL, escapeChars, kCFStringEncodingUTF8);
Spero che questo aiuti.
- 1. Quali sono i caratteri unicode standard?
- 2. Quali sono i caratteri predefiniti inclusi con iText?
- 3. Quali caratteri sono validi nelle chiavi hash?
- 4. Quali sono i caratteri consentiti in una parola chiave Clojure?
- 5. Quali caratteri NON sono presenti in Unicode?
- 6. Quali caratteri sono validi in un URL?
- 7. Quali sono i caratteri validi che possono essere visualizzati in un host URL?
- 8. Quali sono tutti i personaggi di escape?
- 9. Collezione che eredita da ObservableCollection - Quali sono i vantaggi?
- 10. Quali sono i caratteri legali/consentiti per i nomi dei file del server Web?
- 11. Quali caratteri sono ammessi negli hashtag di Twitter?
- 12. Quali sono i nickname per i caratteri speciali di programmazione comuni?
- 13. Quali caratteri sono consentiti in un nome di attributo HTML?
- 14. Quali caratteri NON sono consentiti nei nomi dei campi MongoDB?
- 15. Quali sono alcuni esempi di programmazione a livello di caratteri?
- 16. Quali sono i plugin Xcode più utili?
- 17. Quali sono i comandi distruttivi in git?
- 18. Quali sono i migliori componenti di Boost?
- 19. Quali sono i problemi reali con Ruby?
- 20. Quali sono i vantaggi di Persistenza Ignoranza?
- 21. Quali sono i vantaggi dell'utilizzo di WCF?
- 22. Quali sono i rischi delle sessioni PHP?
- 23. quali sono i vantaggi dell'uso di scrapyd?
- 24. Quali sono i vantaggi delle diverse endianness?
- 25. Quali sono i vantaggi dell'utilizzo di automapper?
- 26. Quali sono i vantaggi di JRebel?
- 27. Quali sono i veri vantaggi di ExpandoObject?
- 28. Quali sono i vantaggi delle coroutine?
- 29. Quali sono i contenitori in Java
- 30. Quali sono i segni dell'inizializzazione delle croci?
Ora ho solo bisogno di pochi minuti per leggere quel documento ... :) –