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 - 将每个字节编码为两个十六进制字符。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现