【问题标题】:fs.readFile returning string but with white space between every character and adding charactersfs.readFile 返回字符串,但每个字符之间有空格并添加字符
【发布时间】:2019-09-05 21:56:17
【问题描述】:

fs.readFile() 返回每个字符之间带有空格的字符串,并且还添加了波浪号(~) 这是转换<ApiDocument> 进入这个"~< A p i D o c u m e n t >"

我试图解析 XML 以从存储的文件中获取字符串。我想我可能把文件搞砸了。所以我创建了另一个文件,里面只有简单的文本,比如“test”,我得到了同样的症状“t e s t”

我还认为可能是因为它是一个 xml 文件,所以我将它切换到 TXT 并且仍然得到相同的东西。

我似乎不知道如何表达这个问题,因为网上似乎没有人遇到同样的问题。

我也尝试了不同的编码。

我使用的是 Node 版本 10.15.0

fs.readFile("SalesReceiptExport.xml","UTF-8", function (err, data) {
    if (err) throw err;
    console.log(data);

});

我希望它能够读取包含@​​987654324@ 的文件 并返回带有"<ApiDocument>" 的字符串 但它会变成"~ < A p i D o c u m e n t>"

【问题讨论】:

    标签: node.js readfile fs


    【解决方案1】:

    文件是否写为 Unicode?如果您执行以下操作会发生什么:

    fs.readFile("SalesReceiptExport.xml","UTF-16", function(err,data) { 
       if (err) throw err;
       console.log(data);
    });
    

    创建文件时,您是否指定了编码方案,或者您可以指定编码方案吗?

    【讨论】:

    • 创建文件的时候。我没有意识到这是一个问题。非常感谢你,我变得如此沮丧。我不确定我发送的文件是如何使用 UNICODE 编码的,但我会仔细研究它。 UTF-16 对我不起作用,但如果编码正确的话,再次感谢。
    • 它适用于我使用 MS Teams 生成的 CSV。 注意:我使用'utf16le'而不是UTF-16
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多