2011-12-11 8 views
5

In "normale". NET esiste un metodo UrlEncode che accetta un parametro Encoding. Non esiste un tale metodo UrlEncode in .NET per WP7?UrlEncode con codifica specifica in Windows Phone 7?

Sono in Svezia e sto cercando di recuperare i dati da un servizio REST che si aspetta ISO-8859-1 nelle richieste (ma risponde in UTF-8). Quando si effettua una ricerca (input=frölunda) e si utilizza semplicemente UrlEncode ottengo input=fr%C3%B6lunda che restituisce risultati molto strani a causa della "mancanza" ö. Usando l'UrlDecode .NET con la codifica iso-8859-1 ottengo input=fr%F6lunda che restituisce i risultati previsti.

Devo implementare il mio UrlEncode?

risposta

2

Interessante, sembra che Microsoft stia seguendo lo standard qui con Silverlight. Wikipedia dice:

[...] dovrebbe convertire tutti gli altri personaggi di byte in base a UTF-8, e poi cento-codificare quei valori. Questo requisito è stato introdotto in gennaio 2005 con la pubblicazione di RFC 3986. Gli schemi URI introdotti prima di questa data non sono interessati.

Quindi sembra che abbiano abbandonato la scelta della codifica in quanto solo uno è comunque consentito.

A parte questo non sei l'unico having this problem. La raccomandazione è: non reinventare la ruota e use code already written per ottenere l'HtmlEncode necessario. (A parte la raccomandazione di utilizzare Uri.EscapeUriString invece di HttpUtility.UrlEncode sul lato client - ma non riesco a giudicarlo.)

+1

Quindi il problema è che il provider di servizi REST non sta seguendo lo standard corrente. Lascerò loro una linea e vedremo cosa possono fare. (E se fallisce, prendo in prestito l'implementazione di GData.) Grazie per le informazioni! – jovnas

+1

Quindi sembra. Buona fortuna a persuaderli! –