解决使用Vscode调试Electron主进程时终端打印中文时乱码问题

问题

主进程有一段代码如下:

javascript 复制代码
const { dialog } = require('electron')
const fs = require('fs')
const path = require('path')

// 递归遍历文件
const loadFilesInDir = (dir) => {
  let fileList = []
  // 读取目录下全部文件及子目录
  let files = fs.readdirSync(dir)
  for (var i = 0; i < files.length; i++) {
    let filePath = path.join(dir, files[i])
    // 获取信息
    let fileData = fs.statSync(filePath)
    // 判断是文件还是目录
    if (fileData.isFile()) {
      // 如果是文件,则记录下来
      fileList.push(filePath)
    } else {
      // 如果是目录,则递归遍历,并拼接结果
      fileList = fileList.concat(loadFilesInDir(filePath))
    }
  }
  return fileList
}

// 打开选择目录对话框并遍历目录里的所有文件
const readDir = (event, arg) => {
  console.log('接收渲染进程传参:', arg)
  dialog
    .showOpenDialog({
      // 只允许选择文件夹
      properties: ['openDirectory']
    })
    .then((result) => {
      if (!result.canceled) {
        result.fileList = loadFilesInDir(result.filePaths[0])
      }
      // 将处理结果返回给渲染进程
      event.reply('readDir-reply', result)
    })
}

export { readDir }

代码中的 console.log('接收渲染进程传参:', arg) 打印到终端中显示如下:

解决方法

  1. 搜索"区域"
  1. 依次点击【管理】→ 【更改系统区域设置】
  1. 勾选上【Bate 版:...】
  1. 重启电脑

解决后效果

相关推荐
咔咔一顿操作1 天前
轻量无依赖!autoviwe 页面自适应组件实战:从安装到源码深度解析
javascript·arcgis·npm·css3·html5
刘联其1 天前
.net也可以用Electron开发跨平台的桌面程序了
前端·javascript·electron
韩曙亮1 天前
【jQuery】jQuery 选择器 ④ ( jQuery 筛选方法 | 方法分类场景 - 向下找后代、向上找祖先、同级找兄弟、范围限定查找 )
前端·javascript·jquery·jquery筛选方法
前端 贾公子1 天前
Node.js 如何处理 ES6 模块
前端·node.js·es6
pas1361 天前
42-mini-vue 实现 transform 功能
前端·javascript·vue.js
你的代码我的心1 天前
微信开发者工具开发网页,不支持tailwindcss v4怎么办?
开发语言·javascript·ecmascript
esmap1 天前
OpenClaw与ESMAP AOA定位系统融合技术分析
前端·人工智能·计算机视觉·3d·ai·js
毕设源码-钟学长1 天前
【开题答辩全过程】以 基于node.js vue的点餐系统的设计与实现为例,包含答辩的问题和答案
前端·vue.js·node.js
努力d小白1 天前
leetcode438.找到字符串中所有字母异位词
java·javascript·算法
小白路过1 天前
记录vue-cli-service serve启动本地服务卡住问题
前端·javascript·vue.js