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

Why two different buffer for a same string?

我正在尝试使用 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);
});

是否可以通过两种方式获得相同的缓冲区?

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

其中“\”字符在转换为 Buffer 时不计算在内。

请使用双反斜杠。参见示例:

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