Javascript 从node.js中的文件读取文本时,不会解释转义字符

Javascript 从node.js中的文件读取文本时,不会解释转义字符,javascript,node.js,Javascript,Node.js,从文件中读取字符串时,不会解释转义字符 文件内容:“你好,世界\r\n\t正在播放\r\n\t列表\r\t谢谢” 使用Console.log()的字符串相同 我发现了类似的问题,但没有解决问题,也没有接受回答。函数不知道文件包含特殊的元字符,它只返回原始数据 不过,您可以自己转换数据: function unbackslash(s) { return s.replace(/\\([\\rnt'"])/g, function(match, p1) { if (p1 ===

从文件中读取字符串时,不会解释转义字符

文件内容:“你好,世界\r\n\t正在播放\r\n\t列表\r\t谢谢”

使用Console.log()的字符串相同

我发现了类似的问题,但没有解决问题,也没有接受回答。函数不知道文件包含特殊的元字符,它只返回原始数据

不过,您可以自己转换数据:

function unbackslash(s) {
    return s.replace(/\\([\\rnt'"])/g, function(match, p1) {
        if (p1 === 'n') return '\n';
        if (p1 === 'r') return '\r';
        if (p1 === 't') return '\t';
        if (p1 === '\\') return '\\';
        return p1;       // unrecognised escape
    });
}
不幸的是,仅仅返回
'\'+p1
是不可能的,因为只有完整的字符串文本才需要转义

函数不知道文件包含特殊的元字符,它只返回原始数据

不过,您可以自己转换数据:

function unbackslash(s) {
    return s.replace(/\\([\\rnt'"])/g, function(match, p1) {
        if (p1 === 'n') return '\n';
        if (p1 === 'r') return '\r';
        if (p1 === 't') return '\t';
        if (p1 === '\\') return '\\';
        return p1;       // unrecognised escape
    });
}
不幸的是,仅仅返回
'\'+p1
是不可能的,因为只有完整的字符串文本才需要转义

试试这个:

function parseString(str) {
    return str.replace(/\\r/g, '\r').replace(/\\n/g, '\n').replace(/\\t/g, '\t')
}

var file = fs.readFileSync('./file.txt', 'utf-8')
file = parseString(file)
console.log(file)
试试这个:

function parseString(str) {
    return str.replace(/\\r/g, '\r').replace(/\\n/g, '\n').replace(/\\t/g, '\t')
}

var file = fs.readFileSync('./file.txt', 'utf-8')
file = parseString(file)
console.log(file)

各位,谢谢@Louis MarieMatthews fixedI我猜您的文件中的
\r\n
是一个字符串,而不是换行符。当我更改文件内容时,它对我有效。@Cr.file content string,我为console.log()复制了相同的字符串,为什么要解释它们?普通文件读取器函数的任务不是猜测文件内容是否包含特殊的元字符。@Alnitak我对JS不熟悉,有没有办法像在console.log中那样解释转义字符?opps,谢谢@Louis MarieMatthews fixedI guess
\r\n
在文件中是字符串,而不是换行符。当我更改文件内容时,它对我有效。@Cr.file content string,我为console.log()复制了相同的字符串,为什么要解释它们?普通文件读取器函数的任务不是猜测文件内容是否包含特殊的元字符。@Alnitak我对JS不熟悉,有没有办法像在console.log中那样解释转义字符?它正在工作!非常感谢,反向也有可能吗?当然有可能,但这完全是另一个问题,它起作用了!非常感谢,反向也可能吗?当然可能,但这是一个完全不同的问题