const fs = require('fs')
fs.readFile('./test/1.txt','utf-8',function(err,dataStr){
// console.log(err,dataStr);
if(err){
return console.log('读取文件失败' + err.message);
}
console.log('读取文件成功' + dataStr);
})
我发现了,我是先在文件夹中创建txt的,不是直接在vscode中创建txt,前面就会导致乱码,后面就不会,这个是啥道理
就是这样,我在桌面文件夹创建好,在来vscode看 就这样了
应该是你文件夹创建的和 vscode 中创建的文件编码不一样。
vscode 中创建的默认是
UTF-8
编码的,文件夹中创建的,windows 估计是GB-2312
之类的编码,可以点击 vscode 右下角有个编码的按钮,选择顶部的弹出框,Reopen with Encoding
看一下 vscode 的猜测编码。解决的话,不用
utf-8
编码读取就好了,复杂点可以这么写用了
detect-file-encoding-and-language
来检测文件的编码,因为不知道 Node.js 支持的readFile
的编码有哪些,所以用了iconv-lite
来转换编码解码。