C# 在C中解压缩时文件名中的unicode#
我有一个解压函数,它使用的是.NET库(压缩),但问题是文件名中存在一些unicode问题,例如“µ”正在转换为“æ” 有没有不使用其他解压库就可以解决这个问题的方法,因为我受一些许可证的限制,并且发现这一个最适合我C# 在C中解压缩时文件名中的unicode#,c#,.net,unicode,unzip,C#,.net,Unicode,Unzip,我有一个解压函数,它使用的是.NET库(压缩),但问题是文件名中存在一些unicode问题,例如“µ”正在转换为“æ” 有没有不使用其他解压库就可以解决这个问题的方法,因为我受一些许可证的限制,并且发现这一个最适合我 using System.IO.Compression; private void Unzip() { try { string appPath = Path.GetDirectoryName(Applicati
using System.IO.Compression;
private void Unzip()
{
try
{
string appPath = Path.GetDirectoryName(Application.ExecutablePath);
// unzip update
using (ZipArchive archive = System.IO.Compression.ZipFile.OpenRead(ZipFile))
{
foreach (ZipArchiveEntry entry in archive.Entries)
{
string fullPath = Path.Combine(appPath, entry.FullName);
if (String.IsNullOrEmpty(entry.Name))
{
Directory.CreateDirectory(fullPath);
}
else
{
if (!entry.Name.Equals("Updater.exe"))
{
entry.ExtractToFile(fullPath,true);
}
}
}
// UpdateProgress(((float)s.Position / (float)fileStream.Length) * 100F);
//System.Threading.Thread.Sleep(extraWaitMilliseconds); //don't go too fast
}
UnzipFinished(); //*********^
}
catch (Exception ex)
{
UnzipFailed(ex);
}
}
我读了你关于许可证的限制,但我认为,你会发现这篇关于codeproject的文章很有用 它解释了如何将windows内部ZIP与点网络包装一起使用,并且该链接中的讨论线程帮助我在文件/目录名中使用特殊字符
使用标题作为谷歌搜索项目,我将文章放在首位。基本上,这是一个关于MS.Internal.IO.Zip的包装。我喜欢你说“这个最适合你”的方式,尽管它显然不太适合你(因此这里有个问题)。我喜欢你用自己的方式解释它。。当涉及到我所限于的许可问题时,它最适合我。请注意,GvS所接受的答案并不完全正确。它适用于zip文件使用cp850的特定情况。如果它使用不同的编码,则必须指定它。有关背景信息,请参见阿德里亚诺的回答。但根据您的示例,cp850可能是您的正确选择。