Electron Forge构建Windows应用时繁体中文资源文件名乱码求助
解决Electron Forge构建Windows应用时繁体中文文件名乱码问题
问题根源
开发模式(npm run start)下Node.js默认用UTF-8处理文件名,而Windows命令行默认编码为GBK,Electron Forge构建脚本读取含繁体中文的文件名时,因编码不匹配导致文件名被错误转码,最终安装包内文件名显示为乱码。
解决方案
1. 强制构建时用UTF-8编码执行命令
修改package.json的构建脚本,先切换命令行编码为UTF-8再执行构建:
"scripts": { "make": "chcp 65001 && electron-forge make" }
直接运行npm run make即可,无需手动切换编码。
2. 配置Electron Packager编码参数
在forge.config.js中为packagerConfig添加encoding字段,指定打包时用UTF-8处理文件名:
module.exports = { packagerConfig: { encoding: 'utf-8', // 其他打包配置(如icon、appId等) }, // 其他Forge配置(如makers、plugins等) };
3. NSIS打包器编码适配(若使用NSIS)
如果用NSIS作为安装包生成工具,需在配置中明确指定UTF-8编码:
module.exports = { makers: [ { name: '@electron-forge/maker-nsis', config: { encoding: 'UTF8', // 其他NSIS配置(如安装路径、图标等) } } ] };
若使用自定义NSIS脚本,需在脚本开头添加编码声明:
!charset UTF8
4. 规范代码中的资源路径引用
代码中引用资源文件时,用Node.js的path模块拼接路径,避免硬编码字符串导致的编码问题:
const path = require('path'); // 正确写法 const targetResource = path.join(__dirname, '../assets/繁體中文資源.png');
验证方法
构建完成后,打开生成的安装包目录(默认在out文件夹下),检查资源文件名是否正常;若问题仍存在,删除.forge和out目录清理缓存后重新构建。
内容的提问来源于stack exchange,提问作者octopis
相关产品推荐
相关产品推荐

