【问题标题】:Decode from XYZ and encode to UTF8从 XYZ 解码并编码为 UTF8
【发布时间】:2013-10-04 13:17:15
【问题描述】:

我有一个用 XYZ 编码的字符串,我想用 UTF8 编码它。我正在查看 Buffer,但它不支持除 ASCII、Hex、Base64 和 UTF8 之外的任何其他内容,因此我无法将必须将其转换为缓冲区的字符串提供给它。

我当前的代码(使用 iconv-lite)是:

buffer = new Buffer(str, charset);    <------ will fail as charset is ISO-8859-1 (it could be any other charset anyways)
str = iconv.decode(buffer, charset);
str = iconv.encode(buffer, 'utf8').toString('utf8');

我试图避免使用 iconv,因为那是 Windows 的 PITA。任何其他纯 JavaScript 解决方案对我来说都可以。

【问题讨论】:

  • FileReader's readAsText 可能会有所帮助。不过,不确定 Node.js 对它的支持程度。
  • @PaulS。我不确定你的建议是什么。我在 Node.JS 中执行此操作,这是 Firefox 的 Web API 的链接
  • 其实是W3C's File API的一部分
  • @PaulS。对不起,但我真的看不出这有什么帮助。该方法在 Node.JS 中可用吗?

标签: javascript node.js encoding


【解决方案1】:

这是编码/解码的例子

  var str = "11afe0bc36d62793bacbe46ef809a3f8de86bfdf1fc901d664c2f740ce51947c";
  var charset = "hex";
  var buffer = new Buffer(str, charset);
  var utf8String = buffer.toString(charset);
  console.log(buffer);
  console.log(utf8String);

会写:

  1. 行:

2。线路:11afe0bc36d62793bacbe46ef809a3f8de86bfdf1fc901d664c2f740ce51947c

【讨论】:

  • 如果我没有十六进制/二进制缓冲区,而是缓冲区不支持字符集的字符串怎么办?
猜你喜欢
  • 2014-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-09
  • 2017-01-05
  • 1970-01-01
相关资源
最近更新 更多