2012-06-07 18 views
15

Muszę przeczytać plik zakodowany w UTF-16 przy użyciu nodejs (w kawałkach, ponieważ jest bardzo duży). Dane z pliku przejdą do monondb, więc będę musiał przekonwertować go na utf-8. Z googlowania wydaje się, że jest to po prostu nieobsługiwane przez Węzeł i będę musiał uciekać się do konwertowania surowych danych z bufora samodzielnie. Ale myślę, że powinien istnieć lepszy sposób i po prostu go nie znajduję. Jakieś sugestie?Jak mogę odczytać plik zakodowany w utf-16 w nodejs?

Dzięki.

+2

Powinien obsługiwać kod ucs2, który jest bardzo zbliżony do UTF-16. –

Odpowiedz

17

Węzeł obsługuje UCS-2, podzbiór UTF-16 obsługiwany przez JavaScript. Spróbuj tego użyć.

Zobacz tę pull request.

14

zastąpić normalne utf8 musiałbyś podczas odczytu pliku tekstowego z ucs2:

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

Również dla Google: ktoś się dodatkowy (znak zapytania) znaków pojawiających się w analizowanej pliku, to prawdopodobnie przyczyną twojego problemu. Czytaj plik jako UTF16/UCS2, a dodatkowe znaki znikną.