javascript - Node.js 中的 UTF-16

标签 javascript node.js

我有一个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);

为什么?

示例:

Example

最佳答案

在 JavaScript 字符串文字的源代码中,\u 后跟四个字符表示 Basic Multilingual Plane 中的位置。 .

以字节表示的相同数字在各种 Unicode 编码中表示相同的事物。

您的文本文件包含代表这些字符的字节。

它包含表示 \ 字符、u 字符等的字节。

关于javascript - Node.js 中的 UTF-16,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68068660/

相关文章:

javascript - 向 InstafeedJS 添加一个 "Show Less"按钮

javascript - 将图像从 jpg 转换为 swf

javascript - FUNCTIONS 的继承正在成为一场噩梦

node.js - 在 npm 脚本中重用 package.json 的配置变量

javascript - 通过第三个实例拆分字符串?

javascript - 当类名相同时单击事件不起作用

javascript - 更新子文档 Mongoose 中的字段

javascript - promise 等待不同的结果

javascript - 如何在我的任务代码运行之前*从我的自定义任务中调用其他任务?

javascript - 如何在导航到另一个页面后保留数组