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 文件选择器还是试图将名称直接键入某些内容?
我正在尝试从包含英语以外其他语言字符的位置恢复转储文件。
这就是我所做的:
在 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 文件选择器还是试图将名称直接键入某些内容?