electron本地调试时终端输出文字乱码

目录

  • [1. 临时修改终端编码](#1. 临时修改终端编码)
  • [2. 永久修改终端编码](#2. 永久修改终端编码)
  • [3. 修改项目启动脚本](#3. 修改项目启动脚本)
  • [4. 使用 concurrently 工具](#4. 使用 concurrently 工具)
  • [5. 检查 VSCode 设置](#5. 检查 VSCode 设置)
  • [6. 其他注意事项](#6. 其他注意事项)

1. 临时修改终端编码

在 Windows 系统中,可以通过 chcp 命令临时修改终端的字符编码。默认情况下,Windows 终端使用的是 GBK 编码(代码页 936),而项目通常使用 UTF-8 编码(代码页 65001)。因此,可以在终端中运行以下命令来临时修改编码:

bash 复制代码
chcp 65001

然后运行 Electron 项目。

2. 永久修改终端编码

修改系统区域设置

在 Windows 10 系统中,可以通过修改系统区域设置来永久解决中文乱码问题:

  1. 搜索"区域"。
  2. 依次点击【管理】→ 【更改系统区域设置】。
  3. 勾选【使用 Unicode UTF-8 提供全球语言支持】(Beta 版)。
  4. 重启电脑。

修改注册表

也可以通过修改注册表来永久设置终端的字符编码:

  1. 打开注册表编辑器(regedit)。
  2. 导航到 HKEY_CURRENT_USER\Console%SystemRoot%_system32_cmd.exe。
  3. 新建一个 32 位 DWORD 值,命名为 CodePage,并将值设置为 65001。

3. 修改项目启动脚本

可以在项目的 package.json 文件中修改启动脚本,使其在启动时自动设置终端编码:

bash 复制代码
"scripts": {
  "start": "chcp 65001 && electron ."
}

这样,在运行 npm start 时,终端会自动设置为 UTF-8 编码。

4. 使用 concurrently 工具

如果不想直接修改系统设置,可以使用 concurrently 工具来同时运行多个命令,其中一个命令用于设置终端编码:

安装 concurrently:

bash 复制代码
npm install -D concurrently

修改 package.json 文件:

bash 复制代码
"scripts": {
  "start": "concurrently \"chcp 65001\" \"electron .\""
}

这样在启动项目时,concurrently 会先设置终端编码,然后启动 Electron。

5. 检查 VSCode 设置

如果使用 VSCode 开发 Electron 项目,可能需要检查 VSCode 的终端设置:

打开 VSCode 的设置(Ctrl + , 或 Cmd + ,)。

搜索 terminal.integrated.shellArgs.windows。

添加以下配置:

bash 复制代码
"terminal.integrated.shellArgs.windows": [
  "/k",
  "chcp 65001"
]

这样,VSCode 终端在启动时会自动设置为 UTF-8 编码。

6. 其他注意事项

如果仍然遇到乱码问题,可以尝试检查项目的编码设置,确保代码文件保存为 UTF-8 编码。

在某些情况下,可能需要确保 Electron 的 webPreferences 配置中启用了 nodeIntegration 和 contextIsolation。

相关推荐
撰卢3 分钟前
总结一下vue3的组件之间数据转递,子组件传父组件,父组件传子组件
前端·javascript·vue.js
前端开发爱好者41 分钟前
Vue3 超强“积木”组件!5 分钟搞定可交互 3D 机房蓝图!
前端·javascript·vue.js
前端开发爱好者1 小时前
尤雨溪力荐!Vue3 专属!100+ 动效组件!
前端·javascript·vue.js
前端开发爱好者1 小时前
尤雨溪力荐!Vue3 生态最强大的 14 个 UI 组件库!
前端·javascript·vue.js
lb29171 小时前
关于多个el-input的自动聚焦,每输入完一个el-input,自动聚焦到下一个
前端·javascript·vue.js
lingliang1 小时前
使用 JS 渲染页面并导出为PDF 常见问题与修复
javascript·pdf·vue
sorryhc1 小时前
【AI解读源码系列】ant design mobile——Divider分割线
前端·javascript·react.js
前端进阶者2 小时前
electron-vite_20配置依赖包运行时区外部加载commonjsExternals_vite-plugin-commonjs-externals
前端·electron
anyup2 小时前
🔥 uView Pro 全新升级来啦!一行配置,解锁 uView Pro 全局 TS 类型提示与校验
前端·vue.js·uni-app
Jimmy2 小时前
使用 Electron 在 5 分钟内创建一个桌面的 React 应用
前端·javascript·electron