在C++中,WideCharToMultiByte函數(shù)用于將寬字符轉(zhuǎn)換為多字節(jié)字符串。該函數(shù)的聲明如下:
int WideCharToMultiByte(
UINT CodePage,
DWORD dwFlags,
LPCWCH lpWideCharStr,
int cchWideChar,
LPSTR lpMultiByteStr,
int cbMultiByte,
LPCCH lpDefaultChar,
LPBOOL lpUsedDefaultChar
);
參數(shù)說明:
函數(shù)返回值為轉(zhuǎn)換后的多字節(jié)字符串的長度(不包括null字符),如果轉(zhuǎn)換失敗,則返回0。
以下是一個使用WideCharToMultiByte函數(shù)的例子:
#include <iostream>
#include <windows.h>
int main() {
wchar_t wideStr[] = L"Hello, 你好!";
char multiByteStr[100];
int length = WideCharToMultiByte(CP_UTF8, 0, wideStr, -1, multiByteStr, sizeof(multiByteStr), NULL, NULL);
if (length > 0) {
std::cout << "轉(zhuǎn)換后的多字節(jié)字符串:" << multiByteStr << std::endl;
} else {
std::cout << "轉(zhuǎn)換失敗!" << std::endl;
}
return 0;
}
上述代碼將寬字符字符串轉(zhuǎn)換為UTF-8編碼的多字節(jié)字符串,并輸出轉(zhuǎn)換結(jié)果。