Estoy intentando convertir una cadena de CP932 (también conocida como Windows-31J) a utf8 en javascript. Básicamente, estoy rastreando un sitio que ignora la solicitud de utf-8 en el encabezado de solicitud y devuelve texto codificado en cp932 (aunque la metaetiqueta html indica que la página es shift_jis).Cómo convertir la codificación de caracteres de CP932 a UTF-8 en nodejs javascript, usando el módulo nodejs-iconv (u otra solución)
De todos modos, tengo toda la página almacenada en una variable de cadena llamada "html". A partir de ahí que estoy tratando de convertirlo en UTF8 utilizando este código:
var Iconv = require('iconv').Iconv;
var conv = new Iconv('CP932', 'UTF-8//TRANSLIT//IGNORE');
var myBuffer = new Buffer(html.length * 3);
myBuffer.write(html, 0, 'utf8')
var utf8html = (conv.convert(myBuffer)).toString('utf8');
El resultado no es lo que se supone que debe ser. Por ejemplo, la cadena: "投稿 者 さ ん の 稚 内 全日空 ホ テ ル の ク チ コ ミ (感想 · 情報)" sale como "ソ ス ソ ス ソ ス e ソ ス メ ゑ ソ ス ソ ス ソ ス ソ ス ソ ス ソ ス t ソ ス ソ ス ソ ス S ソ ス ソ ス ソ ス ソ ス ソ ス z ソ ス e ソ ス ソ ス ソ ス フ ク ソ ス`ソ ス R ソ ス ~ (ソ ス ソ ス ソ ス z ソ ス e ソ ス ソ ス ソ ス ソ ス)"
Si quito // TRANSLIT // Ignorar (la cual debe hacer que vuelva caracteres similares para los caracteres que faltan, y en su defecto omitir no transcodificar-poder caracteres), Me aparece este error: Error: EILSEQ, secuencia de caracteres no válida.
Estoy abierto a usar cualquier solución que pueda implementarse en nodejs, pero mis resultados de búsqueda no han arrojado muchas opciones fuera del módulo nodejs-iconv.
nodejs-iconv ref: https://github.com/bnoordhuis/node-iconv
Gracias!
Editar 24.06.2011: He seguido adelante y he implementado una solución en Java. Sin embargo, todavía estaría interesado en una solución de JavaScript para este problema si alguien puede resolverlo.
¿Ha confundido FROM y TO por casualidad? –
La forma en que lo configuro coincide con los ejemplos en la documentación del módulo, pero solo por las patadas intenté cambiarlo, y el resultado parece peor. Obtengo esta cadena: "e tSze N'R ~ (zE)" – Brian