我正在尝试将一些代码从Java移植到Node.js,我遇到了一些麻烦。
给定Java中的字符串"645553dd"
,我可以使用看起来像.getBytes("ISO_8859_1")
的{{1}}来提取一系列字节。但是,我很难在Node.js中做同样的事情。我尝试使用缓冲区,转换为类似的ASCII字符集,但没有运气。我尝试使用node-iconv,但它不断抛出错误{ 54, 52, 53, 53, 53, 51, 100, 100 }
。如何在Node.js中获得相同的字节集?
答案 0 :(得分:4)
您应该可以使用UTF-8
将缓冲区的ISO-8859-1
iconv
转换为var Iconv = require('iconv').Iconv;
var ic8859 = new Iconv('UTF-8', 'ISO-8859-1');
console.log( ic8859.convert(new Buffer('645553dd')) );
:
0x64 == 100
请注意,这些值以base-16 - <SlowBuffer 36 34 35 35 35 33 64 64>
输出:
EILSEQ
如果您仍然收到ISO-8859-1
错误,则您的字符串包含var ic8859 = new Iconv('UTF-8', 'ISO-8859-1//IGNORE');
不支持的字符代码。你要么必须default encoding这些字符:
console.log(new Buffer('645553dd'));
// <Buffer 36 34 35 35 35 33 64 64>
或尝试使用其他编码,例如translate or ignore:
{{1}}