用C函數(shù)來(lái)轉(zhuǎn)換Unicode和ANSI文字
char sChar[MAX_PATH];
const WCHAR wChar[] = L"我的朋友";
// 把wChar這個(gè)Unicode字符串轉(zhuǎn)換成ANSI字符串,保存到sChar,并且返回ANSI的字符串大小,如果失敗,則返回-1
? wcstombs(sChar, wChar, MAX_PATH);
這樣是運(yùn)行不過(guò)不去的,總是返回-1。
后來(lái)經(jīng)人提醒,需要在調(diào)用wcstombs之前要先設(shè)置代碼頁(yè):
char sChar[MAX_PATH];
const WCHAR wChar[] = L"我的朋友";
// 設(shè)置代碼頁(yè)為默認(rèn)代碼頁(yè)
? _tsetlocale(LC_ALL,_T(""));
// 把wChar這個(gè)Unicode字符串轉(zhuǎn)換成ANSI字符串,保存到sChar,并且返回ANSI的字符串大小,如果失敗,則返回-1
? wcstombs(sChar, wChar, MAX_PATH);
這樣就可以了!不用調(diào)用煩人的WideCharToMultiByte!多好??!
相反的函數(shù):mbstowcs,可以從ANSI轉(zhuǎn)換到Unicode