2011-12-11 8 views
5

En .NET "normal" hay un método UrlEncode que toma un parámetro de Codificación. ¿No hay tal método UrlEncode en .NET para WP7?UrlEncode con codificación específica en Windows Phone 7?

Estoy ubicado en Suecia y estoy tratando de recuperar datos de un servicio REST que espera que ISO-8859-1 en las solicitudes (pero responde en UTF-8). Al hacer una búsqueda (input=frölunda) y al usar UrlEncode obtengo input=fr%C3%B6lunda, que arroja resultados muy extraños debido a la "falta" ö. Al utilizar .NET UrlDecode con la codificación iso-8859-1, obtengo input=fr%F6lunda, que devuelve los resultados esperados.

¿Debo implementar mi propio UrlEncode?

Respuesta

2

Interesante, parece que Microsoft está siguiendo el estándar aquí con Silverlight. Wikipedia dice:

[...] debe convertir todos los otros personajes de bytes de acuerdo a UTF-8, y luego ciento a codificar esos valores. Este requisito se introdujo en en enero de 2005 con la publicación de RFC 3986. Los esquemas de URI introducidos antes de esta fecha no se ven afectados.

Parece que han perdido la elección de la codificación, ya que solo una está permitida de todos modos.

Aparte de eso usted no es el único having this problem. La recomendación es: no reinventar la rueda y use code already written para obtener el HtmlEncode que necesita. (Aparte de la recomendación de usar Uri.EscapeUriString en lugar de HttpUtility.UrlEncode en el lado del cliente, pero no puedo juzgar eso)

+1

Así que el problema es que el proveedor de servicios REST no está siguiendo el estándar actual. Les dejaré una línea y veré qué pueden hacer. (Y si eso no funciona, tomaré prestada la implementación de GData). ¡Gracias por la información! – jovnas

+1

Así parece. Buena suerte persuadiéndolos! –