以下是通过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>如何使之正常显示?????
转换为unicode(unicode工程)或者ANSI(MBCS工程)
<p class="description">* 校内网目前已开閫?a href="http://xxxxxxx.com/univall.do?province=07">海外1500所大学 </a>銆?a这是utf8编码,如果你通过文本另存,就可能丢失信息,最好在socket接收的同时就调用utf8转gb的函数。
那这部分内容呢?
运行解码程序后的结果:(((((((((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趕BJ?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隷Zu.莸?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?凈褫:毄VC寧漶恆紊?!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瑄拉%Щ?.裿
上面这句已经制定了,后面的文档是属于UTF-8字符集的。
所以,如果要在调试的时候方面看的话,需要转换为Ascii码字符。
方法是先转成宽字节编码,再转成ASCII。
涉及到的函数是:
MultiByteToWideChar
WideCharToMultiByte
有没有可能是某些类似图片的非文本数据。
但是我在打开这段网页的过程完全没有看到正常的文本数据。
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;
}