标签:
自从用了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源代码的方法,其他的乱码情况参考。
标签:
原文地址:http://www.cnblogs.com/startnow/p/5022526.html