为什么两个不同的缓冲区为同一个字符串

时间:2018-04-02 07:49:20

标签: node.js string hex buffer

我正在尝试使用nodejs将字符串转换为缓冲区。字符串在这里:

\xf5\x89\xf8\x19+q@o\xa7\xdcwa2\x8f@\x0c\xd1\x14\x8bT6u@~a]HG\x83

当我从控制台执行此操作时,我得到一个简单的缓冲区。但是如果我从文本文件中读取它,相应的缓冲区会以不同的方式产生。我正在使用以下代码:

var data = '\xf5\x89\xf8\x19+q@o\xa7\xdcwa2\x8f@\x0c\xd1\x14\x8bT6u@~a]HG\x83';
const buf = Buffer.from(data, 'ascii');    // Converting string to buffer
console.log(buf);
// While reading from file
fs = require('fs')
fs.readFile('notes.txt', function (err,data) {
   console.log(data);
});

是否可以同时获得相同的缓冲区?

1 个答案:

答案 0 :(得分:2)

在数据变量中,您声明此值“\ xf5 \ x89 \ xf8 \ x19 + q @ o \ xa7 \ xdcwa2 \ x8f @ \ x0c \ xd1 \ x14 \ x8bT6u @ ~a] HG \ x83”

当您将其转换为缓冲区时,“\”字符不计算。

请使用双背斜杠。见例:

var data = '\\xf5\\x89\\xf8\\x19+q@o\\xa7\\xdcwa2\\x8f@\\x0c\\xd1\\x14\\x8bT6u@~a]HG\\x83';