日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Visual Studio 中文显示乱码问题

發布時間:2023/11/28 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Visual Studio 中文显示乱码问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天在碼云上Fork了一個開源工程,編譯環境是Visual Studio C++, 由于自己本地平臺主要是進行Linux開發,平時文檔編碼格式都是utf-8的,編譯沒問題,但運行起來就是亂碼,就像下圖一樣。

碰到這個問題,根據經驗很確定就是文件編碼問題,于是使用工具,將工程文件批量進行轉碼,由GB2312變換到utf-8。設置完成后標題欄中文正常顯示了,但是里面輸入文字,例如:

AfxMessageBox(_T("加載Duilib屬性文件失敗!"));

顯示仍然是亂碼,于是乎想到了翻閱MSDN, 終于查找了相關資料,Visual Studio 對于UTF-8格式支持不好,在VS2015版本(Visual Studio 2015 Update 2),增加一個編譯選項/utf-8,作用就是將源碼字符集和執行文件字符集指定為UTF-8。加上這個編譯選項后,再重新編譯運行,程序正確輸出中文,問題解決。

/utf-8 (Set Source and Executable character sets to UTF-8)

總結

中文亂碼問題,分析原因在于:

Visual Studio對于不帶BOM的UTF-8文件,默認會根據本地locale的設置來決定文件的編碼(對于簡體中文系統,就是GBK)。因此對于UTF-8 without BOM的代碼文件輸出中文就是亂碼。[^1]

解決方法,分兩步:

  1. 使用批量轉換工具講文件編碼格式轉換為utf-8 格式,這樣文件里面中文字符就能正常顯示了,不會在編輯起來還顯示亂碼, 轉換工具見我的另一篇文章: 批量轉換文件編碼;
  2. 編譯選項里面加上/utf-8, 這樣將執行文件字符集指定為UTF-8, 與源碼文件編碼方式一樣了。

參考文檔
[^1] MSVC中C++ UTF8中文編碼處理探究
[^2] shell 批量轉換文件編碼
[^3] /utf-8 (Set Source and Executable character sets to UTF-8)

總結

以上是生活随笔為你收集整理的Visual Studio 中文显示乱码问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。