2012-06-07 23 views
15

Tengo que leer un archivo codificado en UTF-16 usando nodejs (en fragmentos porque es muy grande). Los datos del archivo entrarán en un mongodb, por lo que tendré que convertirlo en utf-8. De googlear, parece que esto simplemente no es compatible con Node, y tendré que recurrir a la conversión de los datos sin procesar de un buffer yo mismo. Pero también creo que debería haber una mejor manera y simplemente no lo estoy encontrando. ¿Alguna sugerencia?¿Cómo puedo leer un archivo codificado en utf-16 en nodejs?

Gracias.

+2

Debe ser compatible con ucs2, que es bastante similar a UTF-16. –

Respuesta

17

Node es compatible con UCS-2, el subconjunto UTF-16 admitido por JavaScript. Intenta usar eso.

Ver esto pull request.

14

sustituir a la normalidad utf8 que tendría cuando se lee un archivo de texto con ucs2:

var fileContents = fs.readFileSync('import.csv','ucs2') 

Además, para Google: alguien que recibe caracteres adicionales (signo de interrogación) que aparecen en un archivo analizado, esto es, probablemente, la causa de tu problema Lea el archivo como UTF16/UCS2 y los caracteres adicionales desaparecerán.

Cuestiones relacionadas