sublime乱码解决方法
sublime text 3是一款非常好用的代码编辑器,通过一些配置可以实现多种语言的编译运行,但是也会遇到出现中文显示乱码或者运行程序之后输出结果为乱码,今天就针对这个问题进行一个汇总。
对于代码中中文注释或其他内容出现乱码,通常情况下使用"ConvertToUTF8"这个插件就可以解决问题,如果解决不了,可以尝试在文本文件中另存为,保存编码格式从ASCII修改为UTF-8,复制另存的代码,然后删除之前在sublime中出现乱码的文件,重新创建并将代码粘贴。(如果没有解决,可留言交流或者在看看其他解决方法)
另外一种情况的乱码可以修改环境配置文件,常用参考配置如下,容易采用UTF-8的编码。("-fexec-charset=gbk"这句一定要加上)
C/C++:
{
"cmd": ["gcc", "${file}", "-fexec-charset=gbk","-o", "${file_path}/${file_base_name}", "&", "start", "cmd", "/c", "${file_base_name} & echo. & pause"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c, source.c++",
"shell": true,
"encoding":"UTF-8",
}
2. 保存为g++.sublime-build即可(g++可以改成自己好记的)
3. 然后ctrl+shift+b选择g++编译
或者:
{
"encoding": "utf-8",
"working_dir": "$file_path",
"shell_cmd": "g++ -Wall -std=c++11 -fexec-charset=GBK \"$file_name\" -o \"$file_base_name\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"selector": "source.c++",
"variants":
[
{
"name": "Run",
"shell_cmd": "g++ -Wall -std=c++11 -fexec-charset=GBK \"$file\" -o \"$file_base_name\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause\""
}
]
}
Python:
{
"cmd": ["c:/Python36/python.exe","-u", "$file"], //自己安装路径
"file_regex":"^[ ]*File \"(...*?)\", line ([0-9])*",
"env": {"PYTHONIOENCODING": "utf8"},
"selector": "source.python"
}
Java:
预先安装JDK并配置环境变量
- 新建JAVA_HOME C:Files.0_181(jdk绝对路径)path 最前面添加%JAVA_HOME%;%JAVA_HOME%;
- 新建CLASSPATH .;%JAVA_HOME%;%JAVA_HOME%.jar;%JAVA_HOME%.jar
{"cmd": ["javac", "-encoding", "UTF-8", "-d", ".", "$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java",
"encoding": "GBK",
//执行完上面的命令就结束
// 下面的命令需要按Ctrl+Shift+b来运行
"variants": [{
"name": "Run",
"shell": true,
"cmd": ["start", "cmd", "/c", "java ${file_base_name} &echo. & pause"],
// /c是执行完命令后关闭cmd窗口,
// /k是执行完命令后不关闭cmd窗口。
// echo. 相当于输入一个回车
// pause命令使cmd窗口按任意键后才关闭
"working_dir": "${file_path}",
"encoding": "GBK"
}]
}
或者写一个runJava.bat文件放在jdk的bin目录下(具体可自行搜索):
@ECHO OFF
cd %~dp1
ECHO Compiling %~nx1
IF EXIST %~n1.class (
DEL %~n1.class
)
javac %~nx1
IF EXIST %~n1.class (
ECHO [OUTPUT]:
java %~n1
)
配合下面的配置文件:
{
"cmd": ["runJava.bat", "$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java",
"encoding": "UTF-8"
}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!