4

DotNetZip を使用しています。英語名を持つファイルをすべて正常にアーカイブしているとき。しかし、結果のアーカイブにロシア語の名前のファイルをアーカイブすると、ファイルの名前が正しくありません。一部の人々はその文字列を言った

ZipConstants.DefaultCodePage = 866;

しかし、それはコンパイルされません。また、zip.UseUnicodeAsNecessary プロパティを使用し、ファイル名を utf8 および utf7 に変換します。

4

3 に答える 3

19
zip.AlternateEncodingUsage = ZipOption.Always;
zip.AlternateEncoding = Encoding.UTF8;
于 2012-02-07T06:41:32.037 に答える
9

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");
}

それらを使用する前に、それらのプロパティのドキュメントを確認してください。

于 2010-04-06T21:05:33.200 に答える
2

これを試して

zip.AddEntry("yourfile.txt", "yourtext", Encoding.GetEncoding("utf-8"));

エンコーディング タイプ: エンコーディング タイプ情報

于 2016-01-15T10:46:06.267 に答える