我有一个file.txt,其内容是:
\u0048\u0065\u006c\u006c\u006f\u0020\u0057\u006f\u0072\u006c\u0064\u0021
这是“ Hello World !”以 UTF-16 格式。
如果我的代码是:
let data = '\u0048\u0065\u006c\u006c\u006f\u0020\u0057\u006f\u0072\u006c\u0064\u0021';
console.log(data);
打印输出:'Hello World!'
但是如果我使用 readFileSync() 和 console.log(),它不会打印出“Hello World!”:
let data = fs.readFileSync('file.txt',{encoding:'utf8', flag:'r'});
console.log(data);
为什么?
示例:
最佳答案
在 JavaScript 字符串文字的源代码中,\u
后跟四个字符表示 Basic Multilingual Plane 中的位置。 .
以字节表示的相同数字在各种 Unicode 编码中表示相同的事物。
您的文本文件不包含代表这些字符的字节。
它包含表示 \
字符、u
字符等的字节。
关于javascript - Node.js 中的 UTF-16,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68068660/