首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

CString 中文字串轉 wchar_t 亂碼:專案字元編碼設定與轉換方法

     編輯:程式設計綜合問答

問題描述

從編輯框取出的中文字串為 CString 型態,轉換為 wchar_t 後顯示亂碼,但英文正常。

根本原因

專案的字元編碼設定與 wchar_t 不一致。CString 在 MBCS(多位元組字元集)模式下儲存為 char,而 wchar_t 是寬字元(Unicode),直接轉換會導致中文編碼錯誤。

解決方法

  1. 將 Visual Studio 專案的「字元集」設定改為「使用 Unicode 字元集」(Project Properties → General → Character Set → Use Unicode Character Set)。
  2. 使用 _T() 宏處理字串常數。
  3. 若需轉換,可使用 CString::GetString() 或 (LPCTSTR) 強制轉型,並搭配 wcscpy_s 複製至 wchar_t 緩衝區。
CString str = _T("中文測試");
wchar_t wbuf[256];
wcscpy_s(wbuf, str.GetString());

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved