pim*_*vdb 5 javascript base64 buffer character-encoding node.js
我无法理解 Node.js 中的字符编码。我正在传输数据,由于某种原因,编码会导致某些字符被其他字符替换。我正在做的是在客户端进行 Base 64 编码并在 Node.js 中对其进行解码。
\n\n为了简化,我将范围缩小到这段失败的代码:
\n\nnew Buffer("1w==", \'base64\').toString(\'utf8\');\nRun Code Online (Sandbox Code Playgroud)\n\n是字符1w==的 Base 64 编码\xc3\x97。现在,当将带有参数的字符串传递\'base64\'到缓冲区然后执行操作时,.toString(\'utf8\')我希望得到相同的字符,但我没有。相反,我得到了\xef\xbf\xbd(字符代码65533)。
是不是编码utf8错误?如果是这样,我应该用什么来代替?如果没有,我如何解码 Node.js 中的 Base 64 字符串?
不,你的假设是错误的。Base64 编码的字符串显然只有一个字节编码。U+007F 以上的所有 Unicode 代码点都需要至少两个字节才能以 UTF-8 进行编码。
我仍然不擅长解码 Base64,但请尝试使用 ISO-8859-1。
重点是,base64 解码将字符串转换为字节串。您假设它解码为字符串,但这是错误的。您仍然需要将字节字符串编码为字符串,在您的情况下,正确的编码是 ISO-8859-1。
| 归档时间: |
|
| 查看次数: |
6015 次 |
| 最近记录: |