如何处理节点中的iOS字符串字符解析(日文字符)?

时间:2016-01-08 01:19:47

标签: ios node.js utf-8 utf-16 localizable.strings

我遇到了将ios字符串文件(英语 - > japanese)上传到节点服务器进行解析的问题。

该文件是UTF-16LE,但在解析为字符串时,字符编码会丢失字符。这可能与表达使用utf8读取请求文件数据有关,这会使文件数据出错。

当文件以atom / sublime w / utf16编码加载时,效果很好 当文件在utf8中加载时,事情就会崩溃。

任何帮助都会很棒。

1 个答案:

答案 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();
  }