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.js
y 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.