我需要读取一个使用ISO-8859-1 (也称为latin1)编码的文件,如下所示:
var file_contents = fs.readFileSync("test_data.html", "latin1");
然而,Node抱怨"latin1“或"ISO-8859-1”不是有效的编码(“错误:未知编码”)。
readFileSync
接受什么编码?
发布于 2013-04-17 03:10:07
如果上面的解决方案对您不起作用,则可以使用以下纯nodejs代码获得相同的结果。以上不适用于我,导致在OSX上运行'npm install iconv‘时出现编译异常:
npm install iconv
npm WARN package.json portalServer@0.1.0 No README.md file found!
npm http GET https://registry.npmjs.org/iconv
npm http 200 https://registry.npmjs.org/iconv
npm http GET https://registry.npmjs.org/iconv/-/iconv-2.0.4.tgz
npm http 200 https://registry.npmjs.org/iconv/-/iconv-2.0.4.tgz
> iconv@2.0.4 install /Users/markboyd/git/portal/app/node_modules/iconv
> node-gyp rebuild
gyp http GET http://nodejs.org/dist/v0.10.1/node-v0.10.1.tar.gz
gyp http 200 http://nodejs.org/dist/v0.10.1/node-v0.10.1.tar.gz
xcode-select: Error: No Xcode is selected. Use xcode-select -switch <path-to-xcode>, or see the xcode-select manpage (man xcode-select) for further information.
如果没有指定编码,fs.readFileSync()会返回一个缓冲区。Buffer有一个toString()方法,如果没有指定编码,该方法将转换为UTF8,为您提供文件内容。请参阅nodejs文档。这对我很有效。
https://stackoverflow.com/questions/14551608
复制相似问题