pgadmin 如何对备份中的文件路径进行编码?

How does the pgadmin encodes the file path in backups?

我正在尝试从包含英语以外其他语言字符的位置恢复转储文件。

这就是我所做的:

pgadmin 我使用了如下备份工具:

并且在 FileName 输入中提供了一个名为“א”的实际真实文件夹:

C:\א\toc.dump

实际文件参数 (-f file) 已被自动解码为:

pg_dump.exe --file "C:\0F04~1\TOC~1.DUM"

我的问题是 pgadmin 使用什么解码系统来解码文件路径参数?

它是如何从 א 得出 0F04~1 的?

我问它是因为 pg_restore 不支持不包含英文字符的文件路径(来自 cmd):

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

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

pg_restore: [custom archiver] could not open input file "..."

与此 question 一样,如果我找到 pgadmin 的编码系统,我会在代码中使用它。

我的目标是对包含来自批处理代码的 not-English 个字符的路径进行编码,以便它可以工作。

这不是 pgadmin 所做的奇怪的事情,而是 Windows 本身在需要在类似 DOS 的设置中表示此类文件名时所做的事情。比如名称超过 8 个字符,或扩展名超过 3 个。

在我看来,奇怪的演示文稿只存在于日志和状态消息中。如果我使用 GUI 文件选择器,文件名看起来正常,并且重播成功。

如果您真的想知道 Windows 在做什么,我认为对于带有 Windows 标记的超级用户来说,这是一个更好的问题。我不知道为什么你不能恢复这些文件。您是在使用 pgAdmin GUI 文件选择器还是试图将名称直接键入某些内容?