以下是通过SHOCKE在某网站上下载的一段网页代码: <p class="description">* 鏍″唴缃戠洰鍓嶅凡寮€閫?a href="http://xxxxxxx.com/univall.do?province=07">娴峰1500鎵€澶у</a>銆?a href="http://xxxxxxx.com/univall.do">鍥藉唴3000鎵€澶у</a>銆?a href="http://xxxxxxx.com/highschoolall.do">56000鎵€涓</a>鍙?a href="http://xxxxxxx.com/workplaceall.do">85000瀹跺叕鍙?/a>銆?/p>如何使之正常显示?????

解决方案 »

  1.   

    你要根据该网页的编码进行适当转换,如果没有指定,尝试一下UTF-8
      

  2.   

    看看网页的编码头,然后根据字符集进行转换
    转换为unicode(unicode工程)或者ANSI(MBCS工程)
      

  3.   

    // 3C7020636C6173733D226465736372697074696F6E223E2A20E6A0A1E58685E7BD91E79BAEE5898DE5B7B2E5BC80E9803F6120687265663D22687474703A2F2F787878787878782E636F6D2F756E6976616C6C2E646F3F70726F76696E63653D3037223EE6B5B7E5A49631353030E68980E5A4A7E5ADA6203C2F613EE3803F61
    <p class="description">* 校内网目前已开閫?a href="http://xxxxxxx.com/univall.do?province=07">海外1500所大学 </a>銆?a这是utf8编码,如果你通过文本另存,就可能丢失信息,最好在socket接收的同时就调用utf8转gb的函数。
      

  4.   

    转换方法  http://www.cppblog.com/greatws/archive/2008/08/31/60546.html
      

  5.   

    恩,上面的问题我也已经解决了。
    那这部分内容呢?
    运行解码程序后的结果:(((((((((HTTP请求头是:)))))))))))GET /xxxx.do HTTP/1.1Accept: */*Referer: http://xxx.xxxxxx.com/?xn_sig_in_iframe=1&xn_sig_method=get&xn_sig_time=1224861839546&xn_sig_added=1&xn_sig_user=201264257&xn_sig_session_key=9fTTMD2t8%2FKaPb0iX5PnO1%2BH9QAlCIC1Bnwb9zzFiZdi%2FRz%2FOSFbHuamkWvatdlR-201264257&xn_sig_expires=0&xn_sig_api_key=76d3cab4d20e4a8a835387d427c10945&xn_sig_app_id=00000
    ……………………………………
    ……………………………………(((((((((返回的内容是:)))))))))))HTTP/1.1 200 OKServer: Resin/3.0.21Vary: Accept-EncodingCache-Control: no-cachePragma: no-cacheExpires: Thu, 01 Jan 1970 00:00:00 GMTContent-Encoding: gzipContent-Type: text/html;charset=UTF-8Content-Length: 4776Connection: closeDate: Fri, 24 Oct 2008 15:37:25 GMT        韁鹷覸?櫆?A跻6檷#蒾冦n樎 t8焯瀗'G懂mYR%9qf趕BJ? 0(袅贐^?c傥O?麝镚?g黛璐巘u秣~铟~邟驽}繘<?G?%?3G幙q栲$
    踌,伙?鎻?>酿csLC2%Ud栞V?昄S勖渤吵c逞1U/睬~蟅1-禣忙o錁h姟霵哃X-藠1迊 烴чh? bv垇儙跜畎佟]?2?+姨xhRUL醕s
    1yz52Q誨瘿絃??2菑鹵8b<2奝F恪}热霋喲卓糰?U框狏x决频胫?W?l苴ō躩?5V?[;?y Nj隷Zu.莸?A氟?kq犸?Xg看N荭訿畛鵂秡赨:桍R禃油;_誚/譜?骐?Zg镏鏞>[[鎡m寤乞闫?齷骢kO.垒匹煬?爂
    胩面麵肼9朕譆贡z冰?Ps鎆n\痕8u(`矡荻瀪旨衂磓閦戗趺[+蛷经焂?大旆hnV誆们?J偑 i?u註瘿u??馃谑耯泱跬洤G伋禃曏阏??峑绡Z鱫幝椰隅F???凯s+@s@>?y趾跬(]鬶笪橥汯d{6HYR拵
    當U‐?l?4]es倎XY楽+?4?凈褫:毄VC寧漶恆紊?!d?涫'?b蔋攧駩 僳濹旹2?p?A畑?7v?饇aF傹?噐I胀|興p籆\* E腣么?}9~[*0矇槂麢??猎((BJ(塔娚键鲣緣co3縝?撌L萒ty?34撂梄 %跇?矖z锛?J柼?闔ヂ;岚f懧L?`&?&礯~T'?伓?C戏o?儹槖 2?LA??]X帺?;A吉PM?倚鴬?"o樅?w埜??s切 歠L晳R侃H偓Azv€>V豹2朩鯘泎E??U/?鮕I,"迂z偔弌鱮4蛛0CY潙?灔J?芈2存葦饂B;w聏蘫J&U7ba灜澐o?篢[絋{睵葵m笃9?j?2,?攁i?
    1uN?I?e嚡?C畄l$H
    议_z 罔軠?]Ua^ K"?圎Y?QW5瑄拉%Щ?.裿
      

  6.   

    Content-Type: text/html;charset=UTF-8 
    上面这句已经制定了,后面的文档是属于UTF-8字符集的。
    所以,如果要在调试的时候方面看的话,需要转换为Ascii码字符。
    方法是先转成宽字节编码,再转成ASCII。
    涉及到的函数是:
    MultiByteToWideChar
    WideCharToMultiByte
      

  7.   

    这是我的转换函数,但是对9楼那段代码无效。9楼那是用这个函数转换后的结果。但是对1楼那段还是有用的。
    有没有可能是某些类似图片的非文本数据。
    但是我在打开这段网页的过程完全没有看到正常的文本数据。
    void ConvertUtf8ToGBK(char* strUtf8) 
    {
    int len=MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUtf8, -1, NULL,0);
    unsigned short * wszGBK = new unsigned short[len+1];
    memset(wszGBK, 0, len * 2 + 2);
    MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUtf8, -1, wszGBK, len); len = WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL);
    char *szGBK=new char[len + 1];
    memset(szGBK, 0, len + 1);
    WideCharToMultiByte (CP_ACP, 0, wszGBK, -1, szGBK, len, NULL,NULL); memcpy(strUtf8,szGBK,len+1);
    delete[] szGBK;
    delete[] wszGBK;
    }