我遇到了将ios字符串文件(英语 - > japanese)上传到节点服务器进行解析的问题。
该文件是UTF-16LE,但在解析为字符串时,字符编码会丢失字符。这可能与表达使用utf8读取请求文件数据有关,这会使文件数据出错。
当文件以atom / sublime w / utf16编码加载时,效果很好 当文件在utf8中加载时,事情就会崩溃。
任何帮助都会很棒。
答案 0 :(得分:0)
做了一些研究和挖掘。
利用npm模块iconv-lite解析文件缓冲区应该:
1)将缓冲区解析为utf16le
2)向下转换为utf8
3)转换为字符串。
if (encoding === 'utf-16le') {
str = iconv.decode(buffer, 'utf16le');
body = iconv.encode(str, 'utf8').toString();
} else if (encoding === 'utf-16be') {
str = iconv.decode(buffer, 'utf16be');
body = iconv.encode(str, 'utf8').toString();
} else {
body = Buffer.concat(file.data).toString();
}