從編輯框取出的中文字串為 CString 型態,轉換為 wchar_t 後顯示亂碼,但英文正常。
專案的字元編碼設定與 wchar_t 不一致。CString 在 MBCS(多位元組字元集)模式下儲存為 char,而 wchar_t 是寬字元(Unicode),直接轉換會導致中文編碼錯誤。
Project Properties → General → Character Set → Use Unicode Character Set)。_T() 宏處理字串常數。CString::GetString() 或 (LPCTSTR) 強制轉型,並搭配 wcscpy_s 複製至 wchar_t 緩衝區。CString str = _T("中文測試");
wchar_t wbuf[256];
wcscpy_s(wbuf, str.GetString());
