Windows平台 explorer 打不开带中文的目录

(shell-command-to-string (replace-regexp-in-string "/" "\\\\"
      (format "explorer.exe %s" (file-name-directory (expand-file-name file)))))

如果文件路径中含有中文,就无法打开,有没有办法解?

(shell-command-to-string (encode-coding-string
 (replace-regexp-in-string "/" "\\\\" (format "explorer.exe %s" (file-name-directory file))) 'gbk))

添加 encoding 解决了

5 个赞

估计要转换成 gbk 编码?

贴了解决方案了

我好像一直都没转码。

(shell-command (concat "start explorer /e,/select,\"" (replace-regexp-in-string "/" "\\\\" (buffer-file-name)) "\""))
2 个赞

貌似不行,可能是你别的设置生效了。比如编码什么的

1 个赞

:+1: 这个命令有用,直接就选中当前文件

你是希望在 Emacs 中通过外部程序打开文件或者文件夹?

如果是这个需求的话,我一般直接用 M-x,consult-file-externally,三大平台都能用。

试了一下,这办法在我电脑当前配置上没有效果,还是打不开中文目录,只能继续用我之前的办法,我是用的url-encode-url,效仿浏览器 解决编码问题的办法,这样导致的问题就是需要写一个程序作url解码然后在调用 explorer.exe

可能你有其他编码的设置吧,我这边目前是好的

  • windows 用 browse-url 函数打开文件浏览器很方便
  • org-link-open-from-string 函数使用 org-link 也是一个办法 用系统打开的前缀是 file+sys: