我在理解node.js中的字符编码方面遇到了困难。 我正在传输数据,但由于编码的原因,某些字符会被替换为其他字符。我的做法是在客户端进行base 64编码,然后在node.js中进行解码。
为了简化问题,我将其缩小到这段代码:
new Buffer("1w==", 'base64').toString('utf8');
1w==
是×
字符的base64编码。当使用'base64'
参数将该字符串传递给缓冲区并执行.toString('utf8')
时,我期望能得到同样的字符,但实际上却没有。取而代之的是�
(字符代码65533
)。是否
utf8
编码有误?如果是,应该使用什么替代?如果不是,如何在node.js中解码base64字符串?
utf8
更改为只使用单字节的binary
。文档显示这是一个已弃用的功能,但目前它可以工作。谢谢。 - pimvdb