锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
]]>
]]>
鏄ㄥぉ鍙戝竷鐨?a >http鍗忚鍡呮帰鎻掍歡婧愮爜錛岄噷闈㈡湁UTF-8杞珿B2312鐨勪竴涓嚱鏁癇OOL UTF8_2_GB2312(const void * pIn,int inLen,char *pOut,int *outLen )錛岃繖閲屼粙緇嶄笅銆?br> 鐩墠寰堝鐨勪腑鏂囩綉欏甸兘閲囩敤UTF-8鎴朑B2312緙栫爜錛孶TF-8鍜孏B2312閮芥槸瀛楃闆嗙殑緙栫爜錛屽叿浣撴牸寮忚繖閲屼笉鍋氳璁猴紝榪欓噷涓昏鏄湅鐪嬪浣曠敤鎶奤TF-8杞負GB2312鐨勩傚湪vc鐨勫紑鍙戝鉤鍙伴噷UTF-8姹夊瓧浼氭樉紺烘垚涔辯爜錛岄渶瑕佽漿鎹㈡垚GB2312鎵嶈兘鏄劇ず銆?br> 澶ф鐨勬濊礬鏄繖鏍風殑錛屽厛鎶奤TF8杞崲鎴怳NICODE錛屽啀鎶奤NICODE杞崲鎴怗B2312錛屼負浠涔堜細榪欐牱鎯沖憿錛屽洜涓簑indows API閲屾彁渚涗簡澶氬瓧鑺傝漿瀹藉瓧鑺傦紙MultiByteToWideChar錛夛紝瀹藉瓧鑺傝漿澶氬瓧鑺傦紙WideCharToMultiByte錛夌殑鏂規硶銆傚ソ浜嗭紝涓? 闈㈡槸鍏蜂綋鐨凙PI浣跨敤:MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)pIn,inLen, pWchar, len),絎竴涓弬鏁版槸CP_UTF8錛岃繖鏍峰氨鎶奤TF8杞垚UNICODE浜嗐備綘鍐嶇敤WideCharToMultiByte灝辮兘鎶奤NICODE杞垚 GB2312浜嗐?br> 濡傛灉浣犳槸鍦∕FC涓嬶紝錛岀洿鎺ョ敤CString鏋勯犲氨鑳芥妸UNICODE杞垚GB2312錛屾瀯閫犲嚱鏁版槸鏈夌被鍨嬭漿鎹㈠姛鑳芥淮銆傘傘?/p>
鍑芥暟婧愮爜錛孷C6緙栬瘧閫氳繃錛?/strong>
BOOL UTF8_2_GB2312(const void * pIn,int inLen,char *pOut,int *outLen )
{
ASSERT( ( (NULL==pIn) ||( NULL==pOut) ) );
int len=MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)pIn, -1, NULL,0);
wchar_t *pWchar = new wchar_t[len+1];
if (NULL==pWchar)
return FALSE;
memset(pWchar,0,(len+1)* sizeof(wchar_t));
MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)pIn,inLen, pWchar, len);
CString str=CString(pWchar);
ASSERT(str.GetLength()>(*outLen));//not enough output buff
*outLen = str.GetLength();
memcpy(pOut,str.GetBuffer(0),*outLen);
delete[]pWchar;
return TRUE;
}