本文主要記錄了Qt控制台出現中文亂碼的問題,一下列出了集中編碼設置的方法。以前用VC6.0寫的一個貪吃蛇的游戲,今天把源文件拿出來在Qt上面運行,出現中文亂碼的問題。以前也遇到過,沒想到小小的亂碼,折騰了1個小時左右。
編碼的發展簡史
第一台計算機誕生不久,就有了ASCII編碼,后來因ASCII不能滿足現下的字符,就由ISO組織擴展成為ISO-8859-1。計算機的普及,各個國家都有了自己的編碼,目的可以在計算機上可以顯示它們的語言。比如GBK編碼來表示中文。但這也產生了編碼不一致的問題,后來unicode統一了全世界的語言的編碼規則,它可以表示全世界的語言。那為何美國人就不會遇到字符亂碼的問題?美國人使用的是英文,而中國人使用的是中文。原因是全世界的字符編碼對英文的編碼規則是一致的,都是以一個字節來保存英文的。而中文不同,有些編碼根本不支持中文,比如ISO-8859-1,有些編碼對中文的編碼規則不一致,比如GBK以2個字節,而UTF-8是以3個字節保存中文。詳細了解亂碼問題。
首先查看控制台的編碼
因為我這里使用的是控制台,如果是窗體應用程序,應該查看系統的編碼。
工具菜單下設置初始編碼環境
編輯菜單下重新設置編碼
側邊欄項目里設置編碼
小結:亂碼問題終歸是編碼問題,編寫的編碼和顯示的編碼不同一造成的。解決的本質就是將這2個編碼設置統一即可。 項目開始之前,一定要考略周全,減少不必要的麻煩。