標籤:
自從用了sublime 一直使用sublime+gcc進行寫C程式,但是有個問題很擾人。
一般建立的源檔案是utf-8的編碼模式,但是windows控制台是gbk的編碼(sublime的console無法輸入,遂放棄,而調用win的cmd),中文顯示會造成亂碼。
而win要修改註冊表的索引值才能支援utf-8,但是修改過後,也會造成一些麻煩,java的又會亂碼。
1.sublime使用其他控制台程式(沒成功,智傷,,,不會)
2.在百度中查到一種辦法,就是在控制台輸入命令,暫時性的修改成支援utf-8
chcp //查看當前控制台的字碼頁chcp 65001 //更改成unicode字碼頁
想到修改sublime 的編譯系統設定檔,多寫幾個命令,在運行程式前把chcp 65001加進去。
折騰了幾個小時,順帶明白了一些命令(如下)。
cmd /c dir //是執行完dir命令後關閉命令視窗。 cmd /k dir //是執行完dir命令後不關閉命令視窗。 cmd /c start dir //會開啟一個新視窗後執行dir指令,原視窗會關閉。 cmd /k start dir //會開啟一個新視窗後執行dir指令,原視窗不會關閉。 可以用cmd /?查看協助資訊。
廢話少說,附上我更改的配置代碼。
1 { 2 "cmd": ["gcc","${file}", "-o", "${file_path}/${file_base_name}"], 3 "file_regex":"^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", 4 "working_dir":"${file_path}", 5 "selector": "source.c", 6 7 "variants": 8 [ 9 {10 "name": "Run",11 "cmd": ["cmd","/c", "gcc", "${file}", "-o","${file_path}/${file_base_name}", "&&","start","cmd","/c","chcp 65001 && clear && ${file_path}/${file_base_name} && pause"]}12 ]13 }
第11行 &&之後 cmd /c ........ 是先chcp 65001 然後 clear(清屏) 最後執行目標程式。
另外注意,無法顯示中文時,更改控制台預設字型,自行調整。
測試是否更改把第11行改成
"cmd": ["cmd","/c", "gcc", "${file}", "-o","${file_path}/${file_base_name}", "&&","start","cmd","/k","chcp 65001 && clear && ${file_path}/${file_base_name} && pause"]}
只改了/c為/k
測試完成後再把/k改成/c。
附兩個C的編譯系統設定檔。放在Sublime Text\Data\Packages\User\下面
下載
sublime支援utf-8的C原始碼的方法,其他的亂碼情況參考。