Saltar al contenido

Nodejs convertir string en UTF-8

Te traemos el hallazgo a este atascamiento, o por lo menos eso esperamos. Si continuas con preguntas dínoslo y sin dudarlo te responderemos

Solución:

Use el módulo utf8 de npm para codificar/decodificar el string.

Instalación:

npm install utf8

En un navegador:


En Node.js:

const utf8 = require('utf8');

API:

Codificar:

utf8.encode(string)

Codifica cualquier JavaScript dado string (string) como UTF-8 y devuelve la versión codificada en UTF-8 del string. Lanza un error si la entrada string contiene un valor no escalar, es decir, un sustituto solitario. (Si también necesita poder codificar valores no escalares, use WTF-8 en su lugar).

// U+00A9 COPYRIGHT SIGN; see http://codepoints.net/U+00A9
utf8.encode('xA9');
// → 'xC2xA9'
// U+10001 LINEAR B SYLLABLE B038 E; see http://codepoints.net/U+10001
utf8.encode('uD800uDC01');
// → 'xF0x90x80x81'

Descodificar:

utf8.decode(byteString)

Decodifica cualquier código UTF-8 dado string (byteString) como UTF-8 y devuelve la versión decodificada en UTF-8 del string. Lanza un error cuando se detecta UTF-8 con formato incorrecto. (Si también necesita poder decodificar valores no escalares codificados, use WTF-8 en su lugar).

utf8.decode('xC2xA9');
// → 'xA9'

utf8.decode('xF0x90x80x81');
// → 'uD800uDC01'
// → U+10001 LINEAR B SYLLABLE B038 E

Recursos

Yo recomendaría usar el Buffer clase:

var someEncodedString = Buffer.from('someString', 'utf-8');

Esto evita dependencias innecesarias que requieren otras respuestas, ya que Buffer está incluido con node.jsy ya está definido en el ámbito global.

Tuve el mismo problema, cuando cargué un archivo de texto a través de fs.readFile(), traté de configurar la codificación en UTF8, se mantuvo igual. mi solución ahora es esta:

myString = JSON.parse( JSON.stringify( myString ) )

después de esto, un Ö se interpreta realmente como un Ö.

Si sostienes algún recelo o forma de acrecentar nuestro tutorial te sugerimos ejecutar una anotación y con deseo lo estudiaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4.5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *