• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴(yán)以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            wininet 和“錕斤拷”

            轉(zhuǎn)載自:http://www.superfection.com/blog/?p=43

            魔爪的作者Djunny曾經(jīng)說(shuō)過(guò),下載的主要問(wèn)題是要熟悉各個(gè)網(wǎng)絡(luò)的不同特點(diǎn)(比中文確切的英文單詞應(yīng)該是whimsicalness)。這點(diǎn)我現(xiàn)在是深有體會(huì)。比如大部分網(wǎng)站的url是基于utf8的,但是有些卻是基于GB2312的,這些網(wǎng)站wininet可能不能正確處理。

            其實(shí)ie是能正確處理的,但是微軟卻沒(méi)有把相應(yīng)的功能放到wininet里面,這目的只有一個(gè),微軟想使得ie的功能比wininet多一點(diǎn),也就是故意要讓程序員麻煩一些。何苦?你讓人家難受,人家自然要找你的漏洞。

            為何不放棄wininet而用liburl之類的程序,畢竟后者若干年的開(kāi)發(fā),久經(jīng)考驗(yàn)。原因:做個(gè)簡(jiǎn)單的工具雖然可以用libcurl,但是發(fā)布uread這樣的應(yīng)用就不好,要至少多一個(gè)dll,麻煩。

            好,下面談?wù)?#8220;錕斤拷”的問(wèn)題。其實(shí)這個(gè)問(wèn)題已經(jīng)有人談過(guò),參見(jiàn) http://hooopo.javaeye.com/blog/352451. 但是這里是由wininet引起的。采用簡(jiǎn)單的wininet調(diào)用,訪問(wèn):

            http://www.sjtxt.com/soft/download.asp?softid=21519&downid=2&id=21525

            你會(huì)發(fā)現(xiàn)重定向到一個(gè)網(wǎng)址:

            http://down1.sjtxt.com/2010-2/錕斤拷士錕斤拷陸.rar

            為什么這里顯示“錕斤拷”,就是wininet沒(méi)有正確地解碼,把這個(gè)網(wǎng)站返回的gb碼當(dāng)成utf8, 先轉(zhuǎn)為utf16,然后又轉(zhuǎn)成utf8,最后按照gb顯示出來(lái)就變成了“錕斤拷”了(實(shí)際的轉(zhuǎn)向地址為http://down1.sjtxt.com/2010-2/斗士大陸.rar,感興趣的可以把這個(gè)“錕斤拷”如何出來(lái)的詳細(xì)推演一下)。

            處理這個(gè)問(wèn)題的辦法是不要讓wininet進(jìn)行自動(dòng)重定向(301 302之類),自己進(jìn)行處理。這下更麻煩了,本來(lái)用wininet就是為了省事,沒(méi)想到卻要多寫若干代碼。

            還有一個(gè)可笑的事情是,wininet的ansi版本和unicode版本不同,后者自動(dòng)地把url的path部分當(dāng)成utf8處理,而前者不會(huì)。我有些工具是用delphi7寫的,有些是用delphi 2010寫的,對(duì)某些網(wǎng)站,后者則要調(diào)用以下這樣的函數(shù)

            InternetSetOption(hSession, 100{INTERNET_OPTION_CODEPAGE_PATH}, @CP_CHINA, sizeof(CP_CHINA));

            其中最新的常量,Delphi中還沒(méi)有定義(CP_CHINA = 936)。

            這些問(wèn)題的解決,只是把工具做的好一些。實(shí)際上沒(méi)有什么意義,都是微軟沒(méi)有把事情做好。你做好點(diǎn),大家就可以做些有意義的事情是不?

             

            posted on 2012-02-19 23:07 楊粼波 閱讀(5078) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 文章收藏網(wǎng)絡(luò)編程C++

            热RE99久久精品国产66热| 亚洲人成无码网站久久99热国产| 欧美麻豆久久久久久中文| 久久精品蜜芽亚洲国产AV| 色8激情欧美成人久久综合电| 亚洲国产精品久久66| 97久久精品午夜一区二区| 久久综合狠狠综合久久综合88| 久久久亚洲裙底偷窥综合| 久久天天躁狠狠躁夜夜av浪潮| 国产成人精品久久一区二区三区av| 狠狠色丁香久久综合五月| 国产成人久久激情91| 国产日产久久高清欧美一区| 99久久超碰中文字幕伊人| 高清免费久久午夜精品| 99精品国产在热久久无毒不卡| 久久人人爽人人爽人人AV东京热| 亚洲欧美伊人久久综合一区二区| 中文字幕热久久久久久久| 亚洲精品无码久久久久| 亚洲国产精品成人久久| 久久99国产综合精品女同| 99re这里只有精品热久久| 亚洲精品高清久久| Xx性欧美肥妇精品久久久久久| 大美女久久久久久j久久| 国产日韩欧美久久| 亚洲国产综合久久天堂| 久久精品国产2020| 国产美女久久精品香蕉69| 91精品国产91久久久久久| 久久久久这里只有精品| 久久人人爽人人爽人人片AV高清 | 色综合久久88色综合天天 | 久久国内免费视频| 久久久无码精品亚洲日韩蜜臀浪潮 | 国产精品一区二区久久精品| 久久久这里有精品中文字幕| 亚洲午夜久久久久妓女影院| 亚洲国产成人久久综合碰碰动漫3d|