var fs = require('fs');
var myNumber = undefined;
function addOne(callback) {
fs.readFile('./User2.txt', 'utf8', function doneReading(err, fileContents) {
myNumber = fileContents.toString();
callback();
});
}
function logMyNumber() {
console.log(myNumber);
}
addOne(logMyNumber);
user2.txt只包含一个字符“1”。
所以当我运行它时,输出是:“??1英寸。为什么会出现这些问号?我本来想要一个号码,但我刚收到消息,楠(我想不是一个号码)。所以我把缓冲区转换成一个字符串,得到了这个。有什么帮助吗?
最佳答案
这个问题似乎有问题。
基本上你只需要做如下的事情:
fs.readFile(filePath, 'utf8', function (err, fileContents) {
// Remove BOM character if there is one at the start of the file.
if(fileContents.charCodeAt(0) == 65279) fileContents = fileContents.substr(1);
}
在这里,您可以从该讨论中获得许多其他解决方法:
替换:
fileContents = fileContents.replace(/^\uFEFF/, '');
使用
fs.readFileSync
而不是fs.readFile
使用you are not the first one包。
关于javascript - Node.js readFile内容转换为字符串会导致“??”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27697902/