NodeJS使用n-readlines读取文件后ASCII编码字符串匹配失败问题
问题:Node.js使用n-readlines逐行读取TXT文件时字符串匹配失效
我用Node.js的n-readlines包逐行读取TXT文件,把读取到的行转成ASCII编码后赋值给变量,但明明目标字符串存在,搜索匹配却不生效。
代码示例:
const nReadlines = require("n-readlines"); let line; const lines = new nReadlines(File); while ((line = lines.next())) { let nLine = line.toString('ascii'); if (nLine.indexOf("SearchString") >= 0) { //do something here } }
我怀疑是编码的问题:尝试截取长度为4的子串时,只返回了2个字符。
解决方案
问题根源在于读取到的行是多字节字符表示,将代码中的:
line.toString('ascii')
修改为:
line.toString('utf16le')
后,匹配问题就解决了。
内容的提问来源于stack exchange,提问作者guyjasper
相关产品推荐
相关产品推荐

