使用C#压缩名称包含非ASCII字符的文件

时间:2018-02-13 23:55:25

标签: c# encoding zip

我正在尝试使用C#(.net 4.6)压缩文件。这是我的代码:

string targetLoc = @"C:\path\to\target\zip";
string sourceFile = @"C:\path\to\source\file\ファイル名.csv";
ZipArchive zip = ZipFile.Open(Path.Combine(targetLoc, "ZipFile.zip"), ZipArchiveMode.Create, Encoding.UTF8);

using (zip)
    {
         string fileName = Path.GetFileName(sourceFile);
         zip.CreateEntryFromFile(sourceFile, fileName);
    }

问题是,结果zip文件中包含的文件名变为:繝輔ぃ繧、繝ォ蜷・csv。我尝试更改zip的编码(在ZipArchive zip = ZipFile.Open(Path.Combine(targetLoc, "ZipFile.zip"), ZipArchiveMode.Update, Encoding.UTF8);中),但我得到ArgumentException表示不支持编码。

这有什么解决方法吗?我尽可能不想使用第三方库。

note1:以前没有zip文件。

note2:我使用的是win7 Pro,日文版(无法更改语言)

提前谢谢!

0 个答案:

没有答案