關於命令提示符中不能正常顯示漢字的問題及解決


為什么在命令提示符中會出現不能正常顯示漢字的情況##

最近在寫代碼的時候,運行時會出現以下幾個圖片的現象:

所用軟件:EditPlus

其中有一行關鍵字為:編碼GBK的不可映射字符

在網上搜索其解決辦法,大部分是保存成ANSI編碼。

於是我保存為ANSI編碼:

於是就可以正常顯示了。

那么什么是ANSI編碼呢?不同的國家和地區制定了不同的標准,由此產生了 GB2312、GBK、Big5、Shift_JIS 等各自的編碼標准。這些使用 1 至 4 個字節來代表一個字符的各種漢字延伸編碼方式,稱為 ANSI 編碼。在簡體中文Windows操作系統中,ANSI 編碼代表 GBK 編碼;在日文Windows操作系統中,ANSI 編碼代表 Shift_JIS 編碼。 不同 ANSI 編碼之間互不兼容,當信息在國際間交流時,無法將屬於兩種語言的文字,存儲在同一段 ANSI 編碼的文本中。 當然對於ANSI編碼而言,0x00~0x7F之間的字符,依舊是1個字節代表1個字符。這一點是ANSI編碼與Unicode編碼之間最大也最明顯的區別。

而原來的EditPlus默認的是Unicode編碼,這里是沒有漢字的。所以,就會出現亂碼的問題。

編碼有幾種 ,計算機最初是在美國等國家發明的 所以表示字符只有簡單的幾個字母只要對字母進行編碼就好 我們標准碼 iso-8859-1 這就是一個標准 但是后來計算機普及了,於是就中國要使用計算機了 但是機器不認得中文,於是就有了國際碼。 gbk gb2312都是這類。兩個其實一個,一個是標准(發布的代號),一個是簡稱。后來多了個阿拉伯語、日語、韓語......所以就出來統一編碼UniCode
ISO-8859-1編碼是單字節編碼,向下兼容ASCII,其編碼范圍是0x00-0xFF,0x00-0x7F之間完全和ASCII一致,0x80-0x9F之間是控制字符,0xA0-0xFF之間是文字符號。此字符集主要支持歐洲使用的語言。

GBK: 漢字國標擴展碼,基本上采用了原來GB2312-80所有的漢字及碼位,並涵蓋了原Unicode中所有的漢字20902,總共收錄了883個符號, 21003個漢字及提供了1894個造字碼位。Windows 95系統就是以GBK為內碼,又由於GBK同時也涵蓋了Unicode所有CJK漢字,所以也可以和Unicode做一一對應。

我又聯想到在安裝一些軟件的時候,有一個要求是目錄中不能帶有中文,這應該就是編碼的緣故。

參考資料


免責聲明!

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



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