utf8_decode utf8 into convert array c# base64 friendly-url

into - convert utf8 to string c#



C#byte[] a url cadena amigable (2)

Echa un vistazo a System.BitConverter.ToString(myByteArray)

Práctico para la codificación de una vía para hashes, pero como señala ssg no es muy eficiente. No lo recomendaría para grandes cantidades de datos.

Estoy trabajando en un generador de captcha rápido para un sitio simple que estoy armando, y espero pasar una clave cifrada en la url de la página. Probablemente podría hacer esto como un parámetro de cadena de consulta bastante fácil, pero espero que no sea así (solo porque nada más se sale de la cadena de consulta) ...

Mi código de encriptación produce un byte [], que luego se transforma utilizando Convert.ToBase64String (byte []) en una cadena. Sin embargo, esta cadena aún no es del todo amigable con la URL, ya que puede contener cosas como ''/'' y ''=''. ¿Alguien sabe de una mejor función en el marco .NET para convertir una matriz de bytes en una cadena amigable con url?

Sé todo sobre System.Web.HttpUtility.UrlEncode () y sus equivalentes, sin embargo, solo funcionan correctamente con parámetros de cadena de consulta. Si url codifico un ''='' dentro de la ruta, mi servidor web devuelve un error de 400 Solicitudes erróneas.

De todos modos, no es un problema crítico, pero espero que alguien me pueda dar una buena solución

** EDIT: Solo para estar absolutamente seguro de lo que estoy haciendo con la cadena, pensé que iba a proporcionar un poco más de información.

El byte [] que resulta de mi algoritmo de encriptación debe alimentarse a través de algún tipo de algoritmo para convertirlo en una cadena amigable con url. Después de esto, se convierte en el contenido de un XElement, que luego se usa como el documento de origen para una transformación XSLT, y se usa como parte del atributo href para un ancla. No creo que la transformación xslt esté causando los problemas, ya que lo que viene en la ruta parece ser un parámetro de cadena de consulta codificada, pero causa el HTTP 400

También he intentado HttpUtility.UrlPathEncode () en una cadena base64, pero eso tampoco parece hacer el truco (todavía termino con ''/'' s en mi url) **


Está buscando HttpServerUtility.UrlTokenEncode y HttpServerUtility.UrlTokenDecode , en System.Web .

Se codifican en base64, reemplazando los caracteres ''+'' y ''/'' potencialmente peligrosos con ''-'' y ''_'' en su lugar.

Documentación de MSDN