Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中解压缩时文件名中的unicode#_C#_.net_Unicode_Unzip - Fatal编程技术网

C# 在C中解压缩时文件名中的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

我有一个解压函数,它使用的是.NET库(压缩),但问题是文件名中存在一些unicode问题,例如“µ”正在转换为“æ”

有没有不使用其他解压库就可以解决这个问题的方法,因为我受一些许可证的限制,并且发现这一个最适合我

 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可能是您的正确选择。