C# ZipFile.CreateFromDirectory 编码
Posted
技术标签:
【中文标题】C# ZipFile.CreateFromDirectory 编码【英文标题】:C# ZipFile.CreateFromDirectory Encoding 【发布时间】:2016-06-15 02:18:06 【问题描述】:我有一个法语文件“Dans mes rêves.mp3”。在 C# 中,当我使用 ZipFile.CreateFromDirectory("/path/to/folder/with/FrenchMp3", "ArchiveName.zip")
时,我在生成的 zip 文件中看到“Dans mes rÛves.mp3”。
似乎是编码?我该如何解决这个问题?
我尝试了以下方法,但没有成功:
ZipFile.CreateFromDirectory("/path/to/folder/with/FrenchMp3", "ArchiveName.zip",CompressionLevel.Optimal, false, Encoding.GetEncoding("iso-8859-1"));
在调试器中,文件名确实显示为“Dans mes rêves.mp3”。
【问题讨论】:
iso-8859-1
没有完全覆盖所有法语字符。你试过不同的编码吗?
好吧,我对编码不太熟悉,但我尝试了UTF8
、Unicode
、iso-8859-1
直到iso-8859-5
尝试使用 Encoding.GetEncoding(850)。奇怪的是,这适用于通常的 ISO-8859-1 和 1252 不起作用的斯堪的纳维亚字符。
【参考方案1】:
测试
ZipFile.CreateFromDirectory("/path/to/folder/with/FrenchMp3", "ArchiveName.zip",CompressionLevel.Optimal, false, Encoding.GetEncoding(850));
使用“Dans mes rêves.mp3”,它可以正常工作。
【讨论】:
按照这个答案,我想知道 850 代表什么。经过一番谷歌搜索,我发现了这个有趣的网站,以防有人需要它:ascii-codes.com/cp850.html以上是关于C# ZipFile.CreateFromDirectory 编码的主要内容,如果未能解决你的问题,请参考以下文章