Tengo un texto de consulta codificado con JavaScript, pero he encontrado un caso de uso en el que podría tener que codificar el mismo texto en el servidor, y la codificación que está sucediendo no es la mismo. Necesito que sea lo mismo. Aquí hay un ejemplo.Citas y espacios de codificación URL
Ingresé "I like food"
en el cuadro de búsqueda y presiono el botón search
. JavaScript codifica esto como %22I%20like%20food%22
Digamos que obtengo el mismo valor que una cadena en un objeto de solicitud en el lado del servidor. Se verá así: "\"I like food\""
Cuando uso HttpUtility.UrlEncode(value)
, el resultado es "%22I+like+food%22"
. Si uso HttpUtility.UrlPathEncode(value)
, el resultado es "\"I%20like%20food\""
Así UrlEncode
es codificar mis citas, pero está utilizando el carácter +
para espacios. UrlPathEncode
está codificando mis espacios pero no está codificando mis citas escapadas.
Realmente lo necesito para hacer ambas cosas, de lo contrario, el código de Búsqueda me atrapa por completo (y no tengo control sobre el código de búsqueda).
¿Consejos?
Haga una cadena de búsqueda/reemplazo para reemplazar espacios con% 20, luego haga el código UrlEncode normal? –
@Marc B: ¿No haría eso que UrlEncode codificara los caracteres "%" (resultando en% 2520 para cada espacio)? Comportamiento muy extraño de UrlPathEncode. Al menos, UrlEncode documenta su conversión de espacios a "+". UrlPathEncode no tiene nada que ver con no convertir comillas ... –
Hmm. buen punto. Supongo que podrías ir por el otro lado, UrlEncode primero, luego buscar/reemplazar + 's con% 20's –