锘??xml version="1.0" encoding="utf-8" standalone="yes"?>97久久天天综合色天天综合色hd,久久99精品久久久久久久久久 ,亚洲国产精品久久久久http://www.shnenglu.com/Shihira/archive/2014/08/16/typegame-vim.htmlShihiraShihiraSat, 16 Aug 2014 13:11:00 GMThttp://www.shnenglu.com/Shihira/archive/2014/08/16/typegame-vim.htmlhttp://www.shnenglu.com/Shihira/comments/208039.htmlhttp://www.shnenglu.com/Shihira/archive/2014/08/16/typegame-vim.html#Feedback0http://www.shnenglu.com/Shihira/comments/commentRss/208039.htmlhttp://www.shnenglu.com/Shihira/services/trackbacks/208039.html闃呰鍏ㄦ枃

Shihira 2014-08-16 21:11 鍙戣〃璇勮
]]>
Windows API 瀛楃緙栫爜杞崲浠ュ強涓浜涜В閲婂拰蹇冨緱http://www.shnenglu.com/Shihira/archive/2013/10/28/200124.htmlShihiraShihiraMon, 28 Oct 2013 14:49:00 GMThttp://www.shnenglu.com/Shihira/archive/2013/10/28/200124.htmlhttp://www.shnenglu.com/Shihira/comments/200124.htmlhttp://www.shnenglu.com/Shihira/archive/2013/10/28/200124.html#Feedback8http://www.shnenglu.com/Shihira/comments/commentRss/200124.htmlhttp://www.shnenglu.com/Shihira/services/trackbacks/200124.html

鎴戝湪瑙e喅涔辯爜涓婇潰瀹為檯璧頒簡涓嶅皯寮礬錛屽仛浜嗗緢澶氬疄楠岋紝鏌ヤ簡寰堝璧勬枡銆傚湪榪欓噷鍋氫笅絎旇錛屽笇鏈涘悗鏉ヨ呭彲浠ユ槑鐧斤紝灝戣蛋浜涘集璺?/span>

浠庢渶鐔熸倝鐨勪袱縐嶅瓧絎︾紪鐮佽璧?br />

闄や簡涓浜涙棫鐨勩佹病鏈夎冭檻鍒板吋瀹規х殑緗戦〉榪樺湪鐢╣bk鍋氱紪鐮佸錛屽ぇ閮ㄥ垎鐨勭綉欏甸兘宸茬粡鐢╱tf-8鍋氱紪鐮佷簡銆備絾鏄渶浠や漢澶寸柤鐨勬槸錛寃indows鐨勬帶鍒跺彴鏄緢涓嶅ソ鏄劇ずutf-8鐨勩傛湁鏄庡悰涓烘垜澶++鍐欎簡涓や釜鍑芥暟錛屾槸姝g‘鐨勩佸ソ鐢ㄧ殑錛堥櫎浜嗙敤std::string鍋氳繑鍥炲艱鎴戠瓑鏁堢巼鍏氭湁鐐硅寰椾笉鐖戒箣澶?#8230;…榪樻槸鎸烘柟渚跨殑錛?/strike>.

#include <string>
#include 
<windows.h>
using std::string;

//gbk 杞?nbsp;utf8
string GBKToUTF8(const string& strGBK)
{
    
string strOutUTF8 = "";
    WCHAR 
* str1;
    
int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0);
    str1 
= new WCHAR[n];
    MultiByteToWideChar(CP_ACP, 
0, strGBK.c_str(), -1, str1, n);
    n 
= WideCharToMultiByte(CP_UTF8, 0, str1, -1, NULL, 0, NULL, NULL);
    
char * str2 = new char[n];
    WideCharToMultiByte(CP_UTF8, 
0, str1, -1, str2, n, NULL, NULL);
    strOutUTF8 
= str2;
    delete[]str1;
    str1 
= NULL;
    delete[]str2;
    str2 
= NULL;
    
return strOutUTF8;
}

//utf-8 杞?nbsp;gbk
string UTF8ToGBK(const string& strUTF8)
{
    
int len = MultiByteToWideChar(CP_UTF8, 0, strUTF8.c_str(), -1, NULL, 0);
    unsigned 
short * wszGBK = new unsigned short[len + 1];
    memset(wszGBK, 
0, len * 2 + 2);
    MultiByteToWideChar(CP_UTF8, 
0, (LPCTSTR)strUTF8.c_str(), -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);
    
//strUTF8 = szGBK;
    std::string strTemp(szGBK);
    delete[]szGBK;
    delete[]wszGBK;
    
return strTemp;
}

榪欑帺鎰忓効涓嶈法騫沖彴錛屽洜涓哄畠鐢ㄥ埌浜唚indows api銆傛垜涔嬫墍浠ユ妸瀹冩斁鍒拌法騫沖彴緙栫▼涓婇潰鏉ワ紝鏄洜涓哄瓧絎︾紪鐮佽繖涓滆タ鍙湁鍒拌法騫沖彴鐨勬椂鍊欐墠鏄懼緱鍧戠埞銆?/span>


鎺ョ潃鎴戞槸涓嶆槸瑕佷粙緇嶉偅淇╁嚱鏁頒竴涓嬶紵

int MultiByteToWideChar(
  _In_       UINT CodePage, 
/*浠g爜欏墊槸Windows涓嬪瓧絎︾紪鐮佺殑鍙硶錛実bk鏄?36錛寀tf-8鏄?5001錛孋P_ACP鏄疉NSI*/
  _In_       DWORD dwFlags, 
/*閫夐」鏍囧織錛岃漿鎹㈢被鍨嬶紝璁?灝辮浜?/span>*/
  _In_       LPCSTR lpMultiByteStr, 
/*澶氬瓧鑺傚瓧絎︿覆*/
  _In_       
int cbMultiByte, /*瀛楃涓茶澶勭悊鐨勯暱搴︼紝濡傛灉鏄?1鍑芥暟灝變細澶勭悊鏁翠釜瀛楃涓?/span>*/
  _Out_opt_  LPWSTR lpWideCharStr, 
/*杈撳嚭鐨勫瀛楃涓茬紦瀛橈紝濡傛灉涓虹┖灝辮繑鍥為渶瑕佺殑瀹藉瓧絎︿覆闀垮害*/
  _In_       
int cchWideChar /*瀹藉瓧絎︿覆緙撳瓨鐨勯暱搴︼紝褰撶劧濡傛灉瀹藉瓧絎︿覆涓虹┖錛岃繖涓0灝卞彲浠ヤ簡*/
);

int WideCharToMultiByte(
  _In_       UINT CodePage,
  _In_       DWORD dwFlags,
  _In_       LPCWSTR lpWideCharStr,
  _In_       
int cchWideChar,
  _Out_opt_  LPSTR lpMultiByteStr,
  _In_       
int cbMultiByte, /*鍓嶉潰鐨勫熀鏈笌MultiByteToWideChar閮界浉鍚岋紝灝變笉瑙i噴浜?/span>*/
  _In_opt_   LPCSTR lpDefaultChar, 
/*濉?鍗沖彲*/
  _Out_opt_  LPBOOL lpUsedDefaultChar 
/*濉?鍗沖彲*/
);

榪欎袱涓嚱鏁板垎鍒槸灝嗗瀛楄妭瀛楃涓茶漿鎹負瀹藉瓧絎﹀瓧絎︿覆 鍜?灝嗗瀛楃瀛楃涓茶漿鎹負澶氬瓧鑺傚瓧絎︿覆錛堝湪姝ゅ鏅曞掔殑绔ラ瀷浠垜娌℃湁瀵逛笉璧蜂綘浠?#8230;…鏄疢$閭e浼欏涓嶈搗浣犱滑錛夈傛垜鏃╁氨璇磋繃Windows API 鐨勭晫闈笉鍙嬪ソ錛岃繖涔堝涓嶇煡閬撳共鍢涘悧鐢ㄧ殑鍙傛暟錛屽叏閮ㄥ~0灝卞浜嗐傝鏄痠conv()錛屽畠璨屼技鍙湁4涓弬鏁幫紝榪欐墠鏄ソ鐨勬鏍楓?/span>


瀹藉瓧絎︼紵澶氬瓧鑺傦紵

榪欐槸Windows緇欏畠浠搗鐨勫悕瀛楋紝璁╀漢鎽鎬笉鐫澶磋剳銆?/span>

  • 瀹藉瓧絎︼細灝辨槸Unicode銆傚畠闆鋒墦涓嶅姩鍦扮敤2涓瓧鑺傦紙0x0000 - 0xFFFF錛夛紝琛ㄧず鎵鏈夋垜浠鉤甯歌兘瑙佸埌鐨勫瓧絎︼紝鍏蜂綋鐨勮〃鏍艱錛?a >http://unicode-table.com

  • 澶氬瓧鑺傦細灝辨槸闄や簡Unicode澶?strong style="font-size: 12pt;">鍏朵粬鐨勩傛垜浠啛鎮夌殑gbk, utf-8, big5錛岀粺緇熷綊鍏ュ瀛楄妭銆?/span>

瀹藉瓧絎︿箣鎵浠ュ彨鍋氬瀛楃錛屾槸鍥犱負瀹冩槸涓涓涓鐐圭殑瀛楃銆傞偅浠涔堟槸鐭瓧絎?#8230;…灝辨槸ascii浜嗭紝1涓瓧鑺?涓瓧絎︾粷瀵瑰鐭紝鑰屼笖鍙兘琛ㄧず256涓タ嬈у瓧絎︺傚瀛楃鍛紝鏄?涓瓧鑺?涓瓧絎︺傚涓鐐癸紝浣嗚繕鏄彲浠ヨ瘑鍒埌涓涓瓧絎︽槸鍝噷鐨勩傝屽瀛楄妭鍛紝灝辨槸瀹冨湪璁$畻鏈洪噷琛ㄧず鎴愬涓瓧鑺傦紝浣嗘槸娌℃湁鍔炴硶璇嗗埆閭i噷鍒伴偅閲屾槸涓涓瓧絎︺?/span>

鎴戜笉鍠滄榪欎袱涓嚱鏁扮殑鍛藉悕銆傚鏋滄寜鐓ython鐨勫懡鍚嶏紝MultiByteToWideChar 搴旇鍙?decode(瑙g爜)錛學ideCharToMultiByte 搴旇鍙?encode(緙栫爜)銆?/span>


鎵浠ュ憿錛?/h3>

濡備綘鎵瑙侊紝澶氬瓧鑺傛棤娉曞噯紜瘑鍒瓧絎︾殑闀垮害錛屽鐞嗚搗鏉ュ氨浼氬緢楹葷儲銆傝屽瀛楃澶у鏃跺欒櫧鐒舵瘮澶氬瓧鑺傚鑰楄垂涓鐐圭┖闂達紝浣嗘槸澶勭悊璧鋒潵鏂逛究銆傛瘮濡傛鍒欒〃杈懼紡澶勭悊錛屽紩鎿庢槸鍩轟簬瀛楃鍘誨尮閰嶇殑錛屽瀛楃鍙互涓や釜瀛楄妭涓や釜瀛楄妭璺崇潃鍖歸厤錛岃屽瀛楄妭灝變細鍖歸厤閿欒銆?/span>

姣斿鏈変竴涓瘝“紼嬪簭”=0xB3CCD0F2(gbk)錛屾垜鎯沖尮閰?#8220;緇?/span>”=0xCCD0(gbk)錛屾鍒欏簱浼氭浛鎴戞妸涓棿閭d袱涓瓧鑺傚尮閰嶄簡銆傜敤鍦–閲岀敤wchar_t錛孋++閲岀敤std::wstring錛屾垜浠彲浠ュ緢鍑嗙‘鐨勶紝鏃犻敊璇湴鍖歸厤鍒版垜浠兂瑕佺殑瀛愪覆錛屽洜涓哄紩鎿庡湪榪唬鐨勬椂鍊欐槸閫愬瓧錛堣屼笉鏄愬瓧鑺傦級榪涜姣旇緝鐨勩?/span>

1 >>> str1 = "緇?/span>"
2 >>> str2 = "紼嬪簭"
3 >>> print re.findall(str1, str2)
4 ['\xcc\xd0']
5 >>> print re.findall(str1.decode("gbk"), str2.decode("gbk"))
6 []

鎵浠ュ湪澶勭悊瀛楃涓茬殑鏃跺欙紝浣嗗嚒瑕佸鐞嗕腑鏂囷紝瑕佸厛鎶婄敤鎴風粰鐨勫瓧絎︿覆瑙g爜鎴怳nicode銆傚鐞嗗畬涔嬪悗鏄劇ず鍑烘潵鎴栬呬繚瀛橈紝鍐嶇紪鐮佹垚闇瑕佺殑charset銆?/span>


Appendix

鍦ㄤ笉鍚岀殑鍦版柟鐢ㄤ笉鍚岀殑緙栫爜錛?/em>

  • 緗戠粶鏂囨湰錛堝緗戦〉錛変紶杈撲竴鑸敤utf-8錛屽洜涓烘湁灝戦噺涓枃錛岃屽ぇ閮ㄥ垎鏄嫳鏂囥?/em>
  • 鍦ㄤ繚瀛樹負鏈湴鏂囦歡鐨勬椂鍊欙紝搴旇淇濆瓨涓篣nicode錛屽洜涓烘湰鍦板瓨鍌ㄨ祫婧愪赴瀵岋紝涓斿彲浠ヨ妭鐪佹椂闂達紝瀹炴椂瑙g爜姣曠珶涔熸槸O(N^2)鍟娿?/em>
  • 鏄劇ず鍑烘潵搴旇鐢ㄧ郴緇熺殑緙栫爜錛屼腑鏂嘩indows涓篻bk錛岀箒浣揥indows涓築ig5錛孡inux涓寰嬩負UTF-8銆?/em>
  • 婧愪唬鐮侀噷鐨勫皯閲忎腑鏂囦覆灝介噺鐢?em style="color: #ff6600;">"\x????\x????"鏉ヨ〃紺猴紝濡傛灉鏈夊ぇ閲忎腑鏂囧緩璁敤gettext鎴栬呰祫婧愪箣綾葷殑浠ュ鎸傜殑鏂瑰紡璇誨叆銆?/em>
  • Qt鍐呴儴浣跨敤Unicode錛屾墍浠ョ紪鍐橯t搴旂敤鏃舵樉紺烘枃瀛楃洿鎺ヤ紶閫掑瀛楃涓插嵆鍙?/em>
  • NTFS鐨勬枃浠跺悕銆佽礬寰勯兘鏄敤GBKUTF16LE緙栫爜鐨勶紝鎵浠ュ鏋淲indows涓嬬敤鎴瘋緭鍏ョ殑鏄礬寰勫氨鏃犻渶瑙g爜浜嗐?/em>




Shihira 2013-10-28 22:49 鍙戣〃璇勮
]]>
亚洲国产综合久久天堂| 久久99这里只有精品国产| 欧美粉嫩小泬久久久久久久 | 久久精品国产久精国产一老狼| 久久精品国产亚洲AV无码偷窥 | 性欧美丰满熟妇XXXX性久久久| 天天爽天天爽天天片a久久网| 伊人久久综合成人网| 久久久久亚洲精品中文字幕| 国产精品久久永久免费| 精品多毛少妇人妻AV免费久久| 久久亚洲国产精品123区| 国产精品久久久久久福利漫画| 精品综合久久久久久98| 久久久久人妻精品一区三寸蜜桃| 国产一区二区三区久久精品| 新狼窝色AV性久久久久久| 无码乱码观看精品久久| 99久久精品国产一区二区三区| 91精品国产乱码久久久久久| 亚洲综合熟女久久久30p| 亚洲国产精品嫩草影院久久| 精品国产青草久久久久福利 | 精品999久久久久久中文字幕| 亚洲中文字幕无码久久精品1 | 国产综合成人久久大片91| 91精品国产高清91久久久久久| 久久精品夜夜夜夜夜久久| 日韩av无码久久精品免费| 久久久久久久波多野结衣高潮| 亚洲精品视频久久久| 亚洲Av无码国产情品久久| 欧洲国产伦久久久久久久| 久久亚洲中文字幕精品一区四 | 久久国产成人亚洲精品影院| 久久久久久a亚洲欧洲aⅴ| 久久99国产精品二区不卡| 久久99国产精品久久99| 91麻豆精品国产91久久久久久| 亚洲国产精品婷婷久久| 超级碰久久免费公开视频|