GCC編譯環境中文亂碼解決方案


https://blog.csdn.net/mylibs/article/details/27913281
展開
在編譯參數中增加以下兩條指令:

-fexec-charset=gbk

-finput-charset=gbk

原因簡單分析:Windows(中文)默認的字符集是Windows-936(GBK),而GCC編譯器默認編譯的時候是按照UTF-8解析的,當未指定字符集時一律當作UTF-8進行處理,於是造成亂碼

https://www.cnblogs.com/dan-jacky/p/6565986.html

g++編譯后中文顯示亂碼解決方案

 

環境:Windows 10 專業版

GCC版本:5.3.0

測試代碼:

復制代碼
1 #include <iostream>
2 using namespace std;
3 
4 int main(int argc, char const *argv[])
5 {
6     cout << "你好。" << endl;
7     return 0;
8 }
復制代碼

編譯執行后發現,中文不能正確顯示出來。

用記事本打開文件,然后【另存為】

發現文件編碼方式是UTF-8,修改成ANSI。繼續編譯執行,發現中文可以准確顯示了。

我們把文件修改為UTF-8的編碼方式,用一下命令編譯執行,發現中文也可以准確顯示了。

g++ -fexec-charset=GBK main.cpp -o main.exe && main.exe

-fexec-charset=charset,此選項指定窄字符或窄字符串的字面值常量的內部編碼方式,默認為UTF-8。例如指定此選項為GBK,則窄字符或窄字符串常量將會以GBK編碼方式存儲而不是默認的UTF-8編碼方式。

 

實際測試utf-8 可行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM