解決Windows下控制臺(tái)應(yīng)用程序亂碼問題的方法
在使用各種IDE編寫純C或者C代碼的控制臺(tái)應(yīng)用程序時(shí),我們常常會(huì)遇到中文顯示為亂碼的問題。這給調(diào)試帶來了很大的不便,如果無法立即解決,只能將中文替換為英文。那么如何解決這個(gè)亂碼問題呢? 分析亂碼原因
在使用各種IDE編寫純C或者C代碼的控制臺(tái)應(yīng)用程序時(shí),我們常常會(huì)遇到中文顯示為亂碼的問題。這給調(diào)試帶來了很大的不便,如果無法立即解決,只能將中文替換為英文。那么如何解決這個(gè)亂碼問題呢?
分析亂碼原因
首先,我們需要明確亂碼的原因。很明顯,亂碼是由編碼與解碼不一致導(dǎo)致的。我們首先來看一下編碼和解碼的情況。
- 打開命令提示符窗口,在標(biāo)題欄上右鍵,選擇"屬性"。
- 在打開的屬性窗口中,選擇"選項(xiàng)"標(biāo)簽頁,可以看到當(dāng)前代碼頁組框中有"936(ANSI/OEM - 簡(jiǎn)體中文 GBK)"的字樣。這表明命令提示符的解碼方式是GBK。
- 接下來,我們來看一下源代碼main.cpp的編碼。在記事本的"另存為"對(duì)話框中可以看到,編碼方式是UTF-8。而且,我的QtCreator的默認(rèn)解碼方式也是UTF-8,所以可以正確解碼,否則源代碼也會(huì)是亂碼。
解決方案
既然亂碼是由編碼問題引起的,我們當(dāng)然可以從編碼入手解決。具體步驟如下:
- 使用記事本打開main.cpp文件,然后選擇"另存為"對(duì)話框,將編碼方式選擇為ANSI,并覆蓋原來的main.cpp文件。
- 此時(shí),QtCreator會(huì)彈出一個(gè)對(duì)話框,提示源代碼已被外部修改,是否重新載入。選擇"Yes to All"。
- 然而,又出現(xiàn)了一個(gè)問題,窗體頂部彈出一個(gè)條,提示無法用UTF-8解碼main.cpp。當(dāng)然無法使用UTF-8解碼,因?yàn)槲覀儗⑵滢D(zhuǎn)換為了ANSI。此外,源代碼中的漢字也變成了一團(tuán)不知道是什么的東西。
- 點(diǎn)擊那個(gè)條上的"Select Encoding"。我們選擇GBK行,然后點(diǎn)擊按編碼重新載入。之后一切都恢復(fù)正常了。
現(xiàn)在再次運(yùn)行程序,一切都正常了。對(duì)于有強(qiáng)迫癥的人來說,這種感覺就像呼吸都輕松了許多。
