char string convert to wchar_t string:
size_t mbstowcs(
wchar_t *wcstr,
const char *mbstr,
size_t count
);
count 表示 wcstr (接收) 有多少數量,如果 count 為 3 則表示 wcstr 的長度為 3 個 wchar_t
回傳值為轉換了多少個字元
如果 wcstr 為 NULL (當然 count 為 0),則表示我們只是要測得 mbstr 轉換成 wcstr 需要多少個 count,然後再去 new 出 count + 1 個 wchar_t
char mbstr[] = "哈囉 大家好";
size_t required = mbstowcs(NULL, mbstr, 0);
wchar_t* wcstr = new wchar_t [required + 1];
size_t size = mbstowcs(wcstr, mbstr, required + 1);
wchar_t string convert to char string:
size_t wcstombs(
char *mbstr,
const wchar_t *wcstr,
size_t count
);
count 表示 mbstr (接收) 有多少數量,如果 count 為 3 則表示 mbstr 的長度為 3 個 char
回傳值為轉換了多少個字元
如果 mbstr 為 NULL (當然 count 為 0),則表示我們只是要測得 wcstr 轉換成 mbstr 需要多少個 count,然後再去 new 出 count + 1 個 char
wchar_t wcstr[] = L"哈囉 大家好";
size_t required = wcstombs(NULL, wcstr, 0);
char_t* mbstr = new char [required + 1];
size_t size = wcstombs(mbstr, wcstr, required + 1);
ref:
• mbstowcs、_mbstowcs_l | Microsoft Docs
• wcstombs、_wcstombs_l | Microsoft Docs
#C++ #coding #convert #UTF8 #unicode