CodeBlocks中文亂碼解決方案-糾錯版

------------------------------------------------------這一段爲基礎科普,可跳過---------------------------------
Windows系統下,文件默認是以WINDOWS-936方式編碼保存的,即GBK編碼。如果你打開帶有中文字符的文件出現中文亂碼,說明你打開文件的編碼方法與保存時候的編碼方案不一致,有可能你是以UTF-8方案打開WINDOWS-936方式編碼保存的文件或者其他不一致的情況。我們可以測試一下:
在這裏插入圖片描述
我們可以看到,當文件保存時的編碼方案與文件打開時的編碼方案一直時,就不會出現中文亂碼的情況。那麼當兩者出現不一致的情況時會怎樣呢?比如我們將ANSI方式保存的文件改爲用UTF-8方式打開時會怎樣呢?我們可以繼續測試一下:
當用ANSI方式顯示ANSI方式保存的情況爲:
在這裏插入圖片描述
當用UTF-8方式顯示ANSI方式保存的情況爲:
在這裏插入圖片描述
----------------------------------------------------這裏有一條很長的分割線------------------------------------------------
基於以上科普,我們回到CodeBlocks中的中文亂碼問題出現的原因及尋求解決方案:
在默認情況下,CodeBlocks只有當文件的編碼方案爲WINDOWS-936時才能夠進行中文的正常編譯。經驗總結,我也不知道爲什麼。
這與網上其他教程不同,這只是我的個人經驗之談,自己親測有效。對於網上一些教程所說的修改編譯器的編碼方式與編輯器的編碼方式一致即可,我全部設爲utf-8還有gdk,反正最後解決不了我的問題,於是纔有了這篇總結。

比如你從網上下載了一個C文件,它原本使用UTF-8編碼保存的,但是你不知道,你只知道用本地CodeBlocks打開後正常顯示(事實上CodeBlocks可以讀取其編碼方式並正常打開,所以顯示的內容纔沒有出現亂碼),但編譯運行時出現了中文亂碼。你只要將該文件的編碼方案在軟件中設置爲WINDOWS-936即可。如果再次編譯之後發現有中文亂碼,隨便剪切一行代碼然後粘貼回去,主要是要有改動文件的行爲即可。

可能出現的問題

1.爲什麼引入的帶有文件路徑頭文件顯示正常,但編譯時控制檯顯示該路徑的中文亂碼?
在確保你的CodeBlocks的編碼方案爲WINDOWS-936後,並且你當前文件打開的編碼方式爲WINDOWS-936且正常顯示的情況下:
隨便剪切一行後重新粘貼即可,主要就是要有文件改動。
出現這種情況是因爲你改動了文件的編碼方案,即便最後改回來了,但由於改動編碼方案之前已經編譯過一次了,可能是編譯過程頭文件的鏈接問題導致的修改不能及時生效吧(瞎猜的)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章