在 babel 插件的上下文中,我从文件中读取缓冲区来检查一些内容。
我正在专门寻找以下字符串
ɵɵfoobar
转义为 \u0275\u0275foobar
。
当我用
myBuffer.toString()
打印缓冲区时,我可以看到
...
[...\u0275\u0275foobar()]
...
但是当我检查内容时,我从来没有得到积极的结果。我尝试过以下方法:
myBuffer.includes('ɵɵfoobar')
myBuffer.includes('\u0275\u0275foobar')
myBuffer.toString().includes('ɵɵfoobar')
另请注意,
myBuffer.includes('foobar()')
返回 true
。
知道我做错了什么吗?
您要查找的字符(ɵ)的编码在UTF-16编码中是
0x0275
,而在UTF-8编码中是0xC9
或0xB5
。由于您正在寻找 0x0275
,我们知道您读入缓冲区的这个文件是用 UTF-16 编码的。
Node.js 的 Buffer.
toString()
接受“编码”作为其第一个参数。默认值为 'utf8'
。这意味着如果您希望能够将 UTF-16 编码匹配为 'utf16'
,则在调用 toString
方法(例如 buffer.toString('utf16')
)时必须提供 \u0275
作为第一个参数。