Parece que eso es poco-endian UTF-16, por lo que desea Encoding.Unicode
:
string text = Encoding.Unicode.GetString(bytes);
Normalmente no debería asumir lo que la codificación es sin embargo - que debe ser algo que usted sabe acerca de los datos . Para otras codificaciones, obviamente usaría diferentes instancias Encoding
, pero Encoding
es la clase correcta para representaciones binarias de texto.
EDIT: Como se señaló en los comentarios, parece que falta un "00" ya sea desde el principio de la matriz de bytes (en cuyo caso se necesita Encoding.BigEndianUnicode
) o desde el final (en cuyo caso simplemente Encoding.Unicode
está bien).
(Cuando se trata de la otra forma, sin embargo, tomando datos binarios arbitrarios y representándolo como texto, debe usar hexadecimal o base64. Ese no es el caso aquí, pero debe tenerlo en cuenta)
muchas gracias! jaja funcionó. –
@IanLundberg: Tenga en cuenta que si utiliza 'Encoding.UTF8' obtendrá una cadena que es el doble de lo que debería ser para sus datos de entrada. En algunos formularios de salida no puede * ver * eso, pero cualquier otro personaje será U + 0000. –
oh bien, no me di cuenta de eso –