【问题标题】:Need an help to decode this html file [closed]需要帮助来解码这个 html 文件 [关闭]
【发布时间】:2017-09-19 10:41:41
【问题描述】:

我正在尝试解码这个 html 文件,当我打开该 html 文件时,它会显示以下数据

‹í½`I–%&/mÊ{JõJ×àt¡€`$Ø@ìÁˆÍæ’ìiG#)«*ÊeVe]f@Ìí¼÷Þ{ï½÷Þ{ï½÷º;N'÷ßÿ?\fdlöÎJÚÉž!€ªÈ?~|?"~ãä7NÏÛEyô'iúxžg3þ~o‹¶Ì^Ï«ÕY›n§O²æmÞ>¾+k›²X¾Më¼ü죦½.ófžçíGé¼ÎÏé~s¯êt ¯Ôpç~<öß—ùò¢ÓçŸ|àš ß+¾O/‹3à`¡ß›zJm<ˆô¡×ì—˜_õ—Çw=Š=¾kçëñ¤š]§mµZ bùÙǧÓ2kšÏ>Â72‹¥“lúö¢®ÖËÙgï ï–ÕE5¾(Î?Jyé Ûj»ÎWyÖ>J—•þúQZ-Ÿ±>ûH©¶õ±”ÕuuõbÄ õ6›”yzUÌÚùgïîìüî§“ªžåõgïÐ(ò²\e³Y±¼°7«lª+€©íïøKèbžÇÅâ"%ZæpjëlI€j":#d1xpÿãtžóö³ïQ†Yñÿû€©›4+‹ "x>&î’?'UÛV ‡©¶ÐL¯_wÜò„£—Ètˆ3>ît,ìññe^7$q ¤?™~:Þé }Ôíb¨Ó Ÿ£éçù"g¢Ø{¢@8ï3úĽE˜öô«×2 ÷GSšè¼þH þÑÃßý£€¨íí–Ä«õQjþÀŸ3ÿO|À u¾>Úé€Ú¥,,y:å!¸:±^ý¨ß$MŸ¿þ½Nßt?§¡:ÈCBÈCÍð3þÈPlG [¸]ÿêÐË£¢ _®é[áúÂ<Ò߆yéï @¤ 'üŸw¨,O ãÅqWþ¶8îîu‘”‡Q}A_ý®ÛÛé"+–)MâUÑÎÓiEØ,Ûíí((zƒv÷±=[.-¶LŸÛ=ñ¾Ð€fÙºÝo¢Ûçuž/&–%ZÓß–x½ ö¦ =Ã-І&ϦFiŒH5¦ ècP¨@y@ó;ÝÑ·43 wåo3 wïLøæ]ðF.ŠÙ¬ÌI{ѬëG%Y·^ÖÕl=mÓÙ"'é›û-ÈÑ‹õb’×Cßþnw¿Zð³‚oU—þnéëõB¾ƒ¬C˜7£[>nÚl9Ëê7äé·.cm‡+qôäË/ß¼¥o~Ÿ—§»ÔËìv€ýÔ‡¾ÿáøáíA† | ½N¾|þúåñ òÕöµ?îîèñDû˜  ÓêÝMìLmndzjÃÂ3Ô‚¾Ç0¥OFðýsí‹üàkx14$݇hµñ{j1Ù ZÀ/X’œ|ö»‡ìJž‚óMù8Žð7¤3/ zÇY³‚GúEµnòŠ\|kÏéà/Êù ‡îÝ5™?nÁ­‡^5o Ÿ|„ðG„öòšÉ“@®üúñÝl# hö6Q‘¾¾ÕäÓ¯OüMzOÏ{bM©alécí·û}Ó} äm÷!}ä^£?Ì ô+7Å_$_ÆÐ¯óH´úÿ¤:ÍXº

该html文件的响应头包含以下信息 缓存控制:私有 内容类型:文本/html 内容编码:gzip 变化:接受编码 服务器:Microsoft-IIS/7.5 X-Powered-By:ASP.NET

请大家帮忙 我当前使用的语言是 c#,但语言不是障碍 可以在此处找到该 html 文件的链接 https://drive.google.com/open?id=0B7czdsz0iSPjNVg1OUp1LVhFQUE

【问题讨论】:

  • 你需要阅读关于在c#中解压gzip字符串
  • 您昨天问了几乎相同的问题-我们为您指明了方向-您尝试过什么了吗?如果是这样,请显示您拥有的代码 - 然后您可能会收到一些回复。
  • 我已经尝试了大多数在线可用的解压缩 gz 的选项,我从上周开始就被卡住了 .. 我已经尝试了这个网站上可用的代码,并进行了一些修改 dotnetperls.com/gzipstream
  • 所以请展示您的代码并解释什么不符合您的预期 - 所以不是代码编写服务。
  • paul 道歉,我已经尝试了堆栈溢出时可用的大部分代码,其中一些代码如 byte[] encodedBytes = utf8.GetBytes(unicodeString);另一个是这个 byte[] utf8Bytes = Encoding.UTF8.GetBytes(str); byte[] isoBytes = Encoding.Convert(Encoding.UTF8, Encoding.Default, utf8Bytes);字符串 uf8converted = Encoding.Default.GetString(isoBytes); // var anyString=System.Net.WebUtility.HtmlDecode(str); CompressStringToFile(@"C:\Users\quality_digital_2\Documents\compass\new.gz", anyString);

标签: javascript c# html


【解决方案1】:

使用System.IO.Compression.GZipStream并创建一个方法来解压数据:

static byte[] Decompress(byte[] zipData)
{
    using (var zipStream = GZipStream(new MemoryStream(zipData), CompressionMode.Decompress))
    {
        const int size = 4096;
        byte[] buffer = new byte[size];
        using (MemoryStream memoryStream = new MemoryStream())
        {
            int count = 0;
            do
            {
                count = zipStream.Read(buffer, 0, size);
                memoryStream.Write(buffer, 0, count);
            }
            while (count > 0);

            return memoryStream.ToArray();
        }
    }
}

然后你可以使用 File.ReadAllBytes 方法得到一个字节[] 可以被 Decompress 方法消耗:

    byte[] file = File.ReadAllBytes("201.html");
    byte[] decompressed = Decompress(file);
    File.WriteAllBytes("201.decompressed.html", decompressed);

我刚刚使用您的示例文件成功测试了该方法。

【讨论】:

  • 我的错我也用同样的方法测试了谢谢你的帮助我做了一件错误的事情而不是直接传递文件我将文件传递给压缩器方法来制作一个带有 gz 扩展名的文件然后将文件传递给解压缩器,这给我一个错误的输出这次我将文件直接传递给解压缩器,它工作文件已经被压缩我做错了
【解决方案2】:

所以这是我的最终代码,感谢大家的帮助

  public static void gzipdecompressor()
    {
        byte[] file = File.ReadAllBytes(@"C:\Users\quality_digital_2\Documents\Projects\224.html");
        byte[] decompressed = Decompress(file);
        Console.WriteLine(file.Length);
        Console.WriteLine(decompressed);
        var str = System.Text.Encoding.Default.GetString(decompressed);
        Console.WriteLine(str);


    }
public static byte[] gzipDecompress(byte[] gzip)
    {

        using (GZipStream stream = new GZipStream(new MemoryStream(gzip),
            CompressionMode.Decompress))
        {
            const int size = 4096;
            byte[] buffer = new byte[size];
            using (MemoryStream memory = new MemoryStream())
            {
                int count = 0;
                do
                {
                    count = stream.Read(buffer, 0, size);
                    if (count > 0)
                    {
                        memory.Write(buffer, 0, count);
                    }
                }
                while (count > 0);
                return memory.ToArray();
            }
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    • 2016-07-08
    • 1970-01-01
    相关资源
    最近更新 更多