Windows 如何编码非英文路径?

Windows 如何编码非英文路径?

C:\א\Toc1.dumppgadmin 的备份工具,它在后台重现了C:\\0F04~1\\TOC1.DUMP屏幕截图中的编码路径:

在此处输入图片描述

当我从 Windows cmd 或 PowerShell 触发时,pg_dump.exe使用非英语字符路径引用它总是会失败:

pg_dump.exe --file "C:\\א\\TOC1.DUMP" ... Not Working!

pg_dump 工具告诉它找不到路径:

pg_dump:[自定义归档器] 无法打开输入文件“...”

但是当我使用编码路径触发 exe 时,它​​可以正常工作:

pg_dump.exe --file "C:\\0F04~1\\TOC1.DUMP" ... //--WORKS!!

因此,我尝试通过代码使其工作,并且我需要弄清楚在将参数传递给 pg_dump.exe 时如何正确地对路径进行编码。

我的问题:Windows 如何编码路径? 它是怎么想出来0F04~1א


按照此问题,有人告诉我它pgadmin本身不进行编码,这是 Windows 所持有的东西。

答案1

两者都有。看来您使用的工具不使用支持 Unicode 的 Windows API。有效的路径是 8.3 路径。它是为了与不支持长文件名的 DOS 应用程序兼容而创建的。

您可以使用以下方式查看它dir /x

05.01.2022  19:51    <DIR>          0F04~1       א

(请注意,א 在命令提示符中显示为一个带有问号的框。)

是否启用 8.3 名称创建是每个卷的属性。默认情况下,它在系统卷上启用。


因为反斜杠是 Windows 中的路径分隔符,所以不是转义字符,不需要像您那样重复。这适用于命令提示符和 PowerShell。

相关内容