缓冲区包含转义字符问题

问题描述 投票:0回答:1

在 babel 插件的上下文中,我从文件中读取缓冲区来检查一些内容。

我正在专门寻找以下字符串

ɵɵfoobar
转义为
\u0275\u0275foobar

当我用

myBuffer.toString()
打印缓冲区时,我可以看到

...

[...\u0275\u0275foobar()]
...

但是当我检查内容时,我从来没有得到积极的结果。我尝试过以下方法:

  • myBuffer.includes('ɵɵfoobar')
  • myBuffer.includes('\u0275\u0275foobar')
  • myBuffer.toString().includes('ɵɵfoobar')

另请注意,

myBuffer.includes('foobar()')
返回
true

知道我做错了什么吗?

javascript node.js
1个回答
0
投票

您要查找的字符(ɵ)的编码在UTF-16编码中是

0x0275
,而在UTF-8编码中是
0xC9
0xB5
。由于您正在寻找
0x0275
,我们知道您读入缓冲区的这个文件是用 UTF-16 编码的。

Node.js 的 Buffer.

toString()
接受“编码”作为其第一个参数。默认值为
'utf8'
。这意味着如果您希望能够将 UTF-16 编码匹配为
'utf16'
,则在调用
toString
方法(例如
buffer.toString('utf16')
)时必须提供
\u0275
作为第一个参数。

© www.soinside.com 2019 - 2024. All rights reserved.