char / wchar_t string 轉換

| 0 Comments| | 19:53
Categories:

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

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *