Pregunta

Estoy lanzando un programa, como un repaso para VB.net y pensé que podría hacer algo de lo que tengo que hacer un montón de todos modos:Convertir una cadena de entrada en UTF-16LE y, a continuación, en Base64.

Ahora, en PHP, puedo hacerlo como este:

<?php
$UTF8_String = "example string"; 
$UTF16_String = mb_convert_encoding($UTF8_String,"UTF-16LE","UTF-8");
$base64_encoded = base64_encode($UTF16_String);
echo $base64_encoded;

Dulce y simple.

...pero en vb.net no puedo averiguar cómo llegar a la cadena de

Dim strInput = inputBox.Text

convertir a UTF-16LE (tiene que ser UTF-16LE) y, a continuación, convertir la cadena resultante a Base64.

Gracias!

Editar:Gserg y Steven código funciona igual de bien, y ayuda a ver dos métodos de conversión de texto:Uno con definibles codificación y uno con Unicode.Steven respuesta es más completa en este momento, así que lo acepto.Gracias!

¿Fue útil?

Solución

UTF-16LE en .RED, por desgracia, se llama simplemente "Unicode" (código IDENTIFICADOR de página 1200).Así, la codificación correcta objeto que se usa para UTF-16LE es Encoding.Unicode.El primer paso es obtener una matriz de bytes para el UTF-16LE representación de la cadena, como este:

Dim bytes() As Byte = Encoding.Unicode.GetBytes(inputBox.Text)

Entonces, usted puede convertir los bytes en una cadena Base64 mediante el uso de la Convert la clase, como este:

Dim base64 As String = Convert.ToBase64String(bytes)

El Encoding la clase tiene propiedades públicas para varios de los más comunes de codificación de objetos (por ejemplo, Unicode, UTF8, UTF7).Si, en el futuro, sin embargo, es necesario utilizar un tipo menos común de codificación de objetos, se puede obtener mediante el uso de la Encoding.GetEncoding método.Que método toma un IDENTIFICADOR de página de código o nombre.La lista de las páginas de código se puede encontrar en la tabla de la esta página de MSDN.

Otros consejos

Dim b = Text.Encoding.GetEncoding("UTF-16LE").GetBytes(inputBox.Text)
Dim base64 = Convert.ToBase64String(b)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top