PowerShell以及cmd 命令 或者 Java的Runtime.exec执行cmd命令 存在中文路径的解决办法

问题描述

当我在 PowerShell 执行一段命令
例如:&“F:\demo\xxx.bat” “F:\哈哈\000.png”
(cmd窗口时得去掉& —> “F:\demo\xxx.bat” “F:\哈哈\000.png”)
就会报错,显示 无法识别 F:\鍝堝搱\000.png,
如果用的Java的Runtime.exec执行cmd命令,也是这样。
这是因为PowerShell和cmd窗口使用的不是UTF-8编码,而我日常使用以及开发时,用的都是UTF-8。而cmd它们用的好像是GBK还是GB2313,我也不清楚

解决办法

我只在Win10环境下成功,其他Win7,linux啥的,我没试过,如果我这方法没用,那我也没办法
打开 控制面板,不知道怎么打开控制面板麻烦百度。
并且按照的我的
【控制面板】 -> 【区域】 -> 【管理】 -> 【更改系统区域设置】 -> 勾选【Beta版:使用Unicode UTF-8 提供全球语言支持】
重启电脑后,就能支持中文路径了。

曾经尝试过的其他办法

  • 方法一
    在notepad里选用gb2312编码,复制命令到cmd窗口。 失败,依旧“鍝堝搱”。
  • 方法二
    Java中
    使用 Runtime.getRuntime().exec(new String(exe.getBytes(), “GBK”);
    使用 Runtime.getRuntime().exec(new String(exe.getBytes(), “GB2312”);
    使用 Runtime.getRuntime().exec(new String(exe.getBytes(), “UTF-8”);
    全部失败。
  • 方法三
    在 PowerShell窗口 或者 cmd窗口,使用命令“chcp 65001” 或者 “chcp 936”,
    窗口确实闪烁了一下,然而还是没用
    “chcp 936”结果-----无法识别 F:\鍝堝搱\000.png
    “chcp 65001”结果-----无法识别 F:\哈哈\000.png
  • 方法四
    参照网上的办法,改注册表,可能是我太蠢,没找到Win10环境对应的注册表

解决方法来源

https://www.zhihu.com/question/54724102/answer/380875686
不过他贴的图是英文界面,我找他那个“Region”界面在哪,也找了一会儿。

嗯,就这样吧!希望能帮到各位

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值