You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows11中pandoc转换含Unicode字符名文件报No such file or directory错误

Windows 11下pandoc无法识别Unicode文件名的解决方法

问题原因

报错本质是两个Windows终端的兼容问题导致的:

  1. 命令中使用了单引号包裹文件路径,Windows原生的CMD、PowerShell不把单引号识别为字符串边界符,会直接把单引号算成文件名的一部分,还会把带空格、特殊字符的路径从特殊字符位置拆碎,才会出现报错信息里半截带乱码、带多余单引号的无效路径。
  2. Windows终端默认使用GBK系列代码页,不是UTF-8编码,传递Unicode字符文件名的时候会直接出现编码错乱,pandoc拿到的路径和实际文件名对不上。

另外你看到的[WARNING] Could not deduce format from file extension警告,也是因为路径被拆碎后pandoc识别不到正确的文件后缀触发的,路径传对之后这个警告会自动消失。

操作步骤

  • 临时生效方案(无需修改系统设置,单次使用)
    1. 打开执行pandoc命令的终端,先执行chcp 65001,把当前终端会话的代码页切换为UTF-8,避免Unicode字符传参乱码。
    2. 把命令里包裹文件名的单引号全部换成英文双引号,注意命令里的文件名要和本地实际存储的文件名完全一致(原命令里的─¢是之前乱码产生的错误字符,不要直接使用,要替换成文件名里实际的正确Unicode字符,比如对应捷克语的ě),修正后的命令参考:
    pandoc -f markdown_phpextra -o "Ahoj světe.html" "Ahoj světe.md"
    
    1. 执行修正后的命令即可正常完成转换。
  • 永久生效方案
    打开Windows设置-时间和语言-语言和区域-管理语言设置,点击「更改系统区域设置」,勾选「Beta版:使用Unicode UTF-8提供全球语言支持」,确认后重启电脑,之后终端默认使用UTF-8编码,不用每次手动执行chcp命令切换,直接用双引号包裹路径就能正常识别带Unicode字符的文件名。

内容的提问来源于stack exchange,提问作者Adam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 12:57:14