DotNetZip を使用しています。英語名を持つファイルをすべて正常にアーカイブしているとき。しかし、結果のアーカイブにロシア語の名前のファイルをアーカイブすると、ファイルの名前が正しくありません。一部の人々はその文字列を言った
ZipConstants.DefaultCodePage = 866;
しかし、それはコンパイルされません。また、zip.UseUnicodeAsNecessary プロパティを使用し、ファイル名を utf8 および utf7 に変換します。
zip.AlternateEncodingUsage = ZipOption.Always;
zip.AlternateEncoding = Encoding.UTF8;
DotNetZipでUnicodezipファイルを作成するには:
using (var zip = new ZipFile())
{
zip.UseUnicodeAsNecessary= true;
zip.AddFile(filename, "directory\\in\\archive");
zip.Save("archive.zip");
}
特定の特定のコードページが必要な場合は、別のものを使用する必要があります。
using (var zip = new ZipFile())
{
zip.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding(866);
zip.AddFile(filename, "directory\\in\\archive");
zip.Save("archive.zip");
}
それらを使用する前に、それらのプロパティのドキュメントを確認してください。
これを試して
zip.AddEntry("yourfile.txt", "yourtext", Encoding.GetEncoding("utf-8"));
エンコーディング タイプ: エンコーディング タイプ情報