electron Nodejs 打开文件中文乱码

 

 

之前版本:

import fs from 'fs'

fs.readFile(txtFilePath, 'utf-8', function (err, dataText) {
          console.info("同步文件名In:", basename)
          //var fileName1 = basename;
          if (err) {
            console.error(err);
          }
          else {
            //这儿不管换什么编码都是中文乱码
            console.log(dataText);
    }
});       

 

解决版本:

package.json

 
"iconv-lite":"0.6.3"

 

import fs from 'fs'
const iconv = require('iconv-lite');

var fileStr = fs.readFileSync(txtFilePath, {encoding:'binary'});
var str = iconv.decode(fileStr,'gb2312');
console.info("正确内容:", str);

 

下面是编码格式参考:

ascii- 仅适用于 7 位 ASCII 数据。这种编码速度很快,如果设置,将剥离高位。

utf8- 多字节编码的 Unicode 字符。许多网页和其他文档格式使用 UTF-8。

utf16le- 2 或 4 个字节,小端编码的 Unicode 字符。支持代理对(U+10000 到 U+10FFFF)。

ucs2 - 'utf16le' 的别名。

base64- Base64 编码。从字符串创建缓冲区时,此编码还将正确接受 RFC4648 第 5 节中指定的“URL 和文件名安全字母表”。

latin1 - 一种将缓冲区编码为单字节编码字符串的方法(由 IANA 在 RFC1345 第 63 页中定义,作为 Latin-1 补充块和 C0/C1 控制代码)。

binary - 'latin1' 的别名。

hex - 将每个字节编码为两个十六进制字符。

 

posted @ 2022-05-12 17:05  三瑞  阅读(592)  评论(0编辑  收藏  举报