2015-11-18 4 views
0

У меня есть файл xml, закодированный в UTF16, и я хотел бы преобразовать его в UTF8 для его обработки. Если я использую эту команду:Как преобразовать файл UTF16 в файл UTF8 в nodejs

iconv -f UTF-16 -t UTF-8 file.xml > converted_file.xml 

Файл преобразуется правильно, и я могу его обработать. Я хочу сделать то же самое в nodejs.

В настоящее время у меня есть буфер моего файла, и я пробовал все, что мог придумать, и что я мог найти в Интернете, но безуспешно.

Вот некоторые примеры того, что я пытался до сих пор:

content = new Buffer((new Buffer(content, 'ucs2')).toString('utf8')); 

Я также попытался использовать эти функции:

http://jonisalonen.com/2012/from-utf-16-to-utf-8-in-javascript/ https://stackoverflow.com/a/14601808/1405208

Первый doen't изменить что-нибудь, и ссылки дают мне только китайские персонажи.

ответ

2
var content = fs.readFileSync('myfile.xml', {encoding:'ucs2'}); 
fs.writeFileSync('myfile.xml', content, {encoding:'utf8'}); 
+0

Что делать, если я не уверен, что мой файл будет закодирован в utf16? –

+0

Это то, что вам нужно ограничить. Либо проверьте, что это utf16, либо укажите тип. Как правило, вы можете запрашивать входящие данные, чтобы найти тип и вставить указанный тип для ucs2 – Ravenous

Смежные вопросы