命令列的亂碼以及編碼的問題的解決方法

追憶丶年華發表於2018-01-16

解決命令列的亂碼以及編碼的問題 
命令 chcp 
功能: 
顯示或設定活動內碼表編號 
  CHCP [nnn] 
  nnn 指定內碼表編號。 
  不加引數鍵入 CHCP 顯示活動內碼表編號。 
  nnn指定一已有的系統字符集,該字符集在CONFIG.SYS檔案中由COUNTRY命令定義。 
  在DOS下可以通過mode命令來設定內碼表。 
  選定內碼表: MODE CON[:] CP SELECT=yyy 
  內碼表狀態: MODE CON[:] CP [/STATUS] 
  按Windows+R組合鍵,然後輸入cmd或者command開啟命令提示符。 
  比如輸入:mode con cp select=936,則表示顯示簡體中文。如果輸入mode con cp select=437,則表示顯示MS-DOS 美國英語,而中文顯示將會是?。 
  MS-DOS為以下國家和語言提供字符集: 
  內碼表描述 
  1258 越南語 
  1257 波羅的語 
  1256 阿拉伯語 
  1255 希伯來語 
  1254 土耳其語 
  1253 希臘語 
  1252 拉丁 1 字元 (ANSI) 
  1251 西里爾語 
  1250 中歐語言 
  950 繁體中文 
  949 朝鮮語 
  936 簡體中文(預設) 
  932 日語 
  874 泰國語 
  850 多語種 (MS-DOS Latin1) 
  437 MS-DOS 美國英語 
//補充 
dos指令: 
chcp 65001 就是換成UTF-8內碼表 
chcp 936 可以換回預設的GBK 
chcp 437 是美國英語 
如何在DOS視窗中顯示UTF-8字元 
在中文Windows系統中,如果一個文字檔案是UTF-8編碼的,那麼在CMD.exe命令列視窗(所謂的DOS視窗)中不能正確顯示檔案中的內容。在預設情況下,命令列視窗中使用的內碼表是中文或者美國的,即編碼是中文字符集或者西文字符集。 
如果想正確顯示UTF-8字元,可以按照以下步驟操作: 
1、開啟CMD.exe命令列視窗 
2、通過 chcp命令改變內碼表,UTF-8的內碼表為65001 
chcp 65001 
執行該操作後,內碼表就被變成UTF-8了。但是,在視窗中仍舊不能正確顯示UTF-8字元。 
3、修改視窗屬性,改變字型 
在命令列標題欄上點選右鍵,選擇"屬性"->"字型",將字型修改為True Type字型"Lucida Console",然後點選確定將屬性應用到當前視窗。 
這時使用type命令就可以顯示UTF-8文字檔案的內容了: 
type filename.txt 
4、通過以上操作並不能完全解決問題,因為顯示出來的內容有可能不完全。可以先最小化,然後最大化命令列視窗,檔案的內容就完整的顯示出來了。 

相關文章