0

ZIP を作成するために Polar の ZIPLight 5.0 DLL を使用する VB6 の非常に古いコードがあります。以前に作成した PDF を Crystal から ZIP ファイルに追加します。

問題は、ある顧客のシステムでドイツ語のウムラウテがめちゃくちゃになり、別の (ユニコード?) 文字に置き換えられていることです。たとえば、私のファイル名にはドイツ語の ä (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 ビューアーにはいくつか問題があります (新しい OS は問題ありません) が、VszLib は XP でも正しいファイル名でそれを抽出します。

ZIPLight コンポーネントがこの拡張 (フラグまたはパラメーター設定) をサポートしているかどうかを確認できます。

于 2013-09-04T09:28:54.217 に答える