0

我在 VB6 中有这个相当古老的代码,它使用 Polar 的 ZIPLight 5.0 DLL 来创建 ZIP。它将先前创建的 PDF 从 Crystal 添加到 ZIP 文件。

问题在于,在一个客户系统上,德国元音变音符号变得混乱并被不同的(unicode?)字符取代。例如,我的文件名中有一个德语 ä (U+00E4),但在客户端计算机上它显示为 õ (U+00F5)。

我想知道这可能是什么原因,因为它不会发生在我们的本地测试系统上。可能是一些字符集相关的情况。

任何提示将不胜感激。

4

1 回答 1

0

事实证明zip 格式具有 unicode 文件名支持的扩展名。

我对VszLib-mcu进行了一些研究,并且在设置参数时 7-zip 确实支持 unicode zip 文件。

这是我的带有西里尔文文件名的测试样本:

Private Sub Command1_Click()
    With New cVszArchive
        .AddFile App.Path & "\това е проба.js"
        .CompressArchive App.Path & "\aaa_ascii.zip"
    End With
    With New cVszArchive
        .Parameter("cu") = "on"
        .AddFile App.Path & "\това е проба.js"
        .CompressArchive App.Path & "\aaa_unicode.zip"
    End With
End Sub

Private Sub Command2_Click()
    With New cVszArchive
        .OpenArchive App.Path & "\aaa_ascii.zip"
        .Extract App.Path & "\ascii"
        .OpenArchive App.Path & "\aaa_unicode.zip"
        .Extract App.Path & "\unicode"
    End With
End Sub

Unicode 存档在非西里尔系统语言环境(非 Unicode 应用程序的语言环境)上正确提取。aaa_unicode.zipXP 的内置 zip 查看器存在一些问题(较新的操作系统还可以),但 VszLib 也可以在 XP 上使用正确的文件名提取它。

您可以检查 ZIPLight 组件是否支持此扩展——标志或参数设置。

于 2013-09-04T09:28:54.217 回答