我在将 ios 字符串文件(英语 -> 日语)上传到 Node 服务器进行解析时遇到问题。
该文件是 UTF-16LE,但解析为字符串时,字符编码会丢失字符。这可能与express使用utf8读取请求文件数据导致文件数据格式错误有关。
当文件以 utf16 编码的atom/sublime 加载时,效果很好 当文件以 utf8 格式加载时,事情就会崩溃。
任何帮助都会很棒。
最佳答案
经过一些研究和挖掘。
利用 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();
}
关于ios - 如何处理 Node 中iOS字符串字符解析(日语字符)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34668033/