Electron shell.openExternal无法打开含有中文的Windows目录

项目场景:

项目:webpack+electron+vue3,运行环境: Windows 系统

问题描述

使用electron的 shell.openExternal(filePath),以桌面的默认方式打开给定的文件。filePath中含有中文时 ,打开文件失败。

import { shell } from "electron";
 shell
    .openExternal("E:\测试\test.bat")
    .then(() => {
      console.log("启动成功");
    })
    .catch(() => {
      console.log("启动失败");
    });

原因分析:

经查找发现 webpack默认的打包编码使用的是utf-8 ,而windows系统使用的编码规则是gbk,两种不同的编码方式导致项目在获取路径时中文乱码,获取不到正确的路径从而打开文件失败。


解决方案:

通过 iconv-lite 对路径编码

const encodePath = iconv.encode(filePath, "ascii").toString("binary")
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值