私の従来の VB6 アプリケーションでは、Web サービスからバイト配列として zip ファイルを受信しています。このバイト配列は、StrConv 関数を使用して文字列に変換され、ファイル システムに格納されます。
Dim arr() As Byte
Dim sUnicode as String
nFile = FreeFile
arr = objHTTP.responseBody
sUnicode = StrConv(arr, vbUnicode)
Open sFile For Output As #nFile
Print #nFile, sUnicode
Close #nFile
これまでのところ、これは 10 年以上にわたって正しく機能しています。現在、このアプリケーションは日本でも使用されており、上記のコードによって zip ファイルが破損します。
この問題がターゲット システムの日本語システム ロケールに関連していることは既にわかっています。
ロケール ID 1033 を StrConv 関数に渡してみました
StrConv(arr, vbUnicode, 1033)
次に、このリンクで説明されているソリューションを実装してみました
また、「SetLocaleInfo」API 呼び出しを使用してシステム ロケールを変更しようとしました。
システム ロケールが日本語に設定されている OS で有効な zip ファイルを生成する試みはありません。
実用的なソリューションを取得する方法を知っている人はいますか?
前もって感謝します、
ヨス