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"
}