sublime显示中文乱码,sublime3中文乱码
一、乱码现象
使用sublime自带的编译快捷键ctrl B会导致中文乱码。
打印(无循环数据!)
打印(完成循环!)
二、寻找原因
1.由于我之前已经安装了ConvertToUTF8这个插件,所以消除了文本编码错误的问题。
2.同样的代码在插件sublimerepl构建的解释器的交互下(按F5键)也能成功显示中文。
在查阅了许多案例后,我发现:
Anaconda插件安装后,会自动生成一个名为“Anaconda Python Builder”的编译系统,可以在工具-编译系统中看到。
sublime reading解释器返回的文本的代码不同,所以用下面的代码进行验证:
importsys
Print(sys.stdout.encoding)用ctrl B编译返回“cp936”,而utf-8用repl解释器交互返回,说明是编码不一致造成的。
之后,一个新的编译系统建立了:
在Python3.sublime.build中编写以下代码:
{
cmd :[ c : \ \ Users \ \ JH \ \ anaconda 3 \ \ python . exe ,-u , $file],
path 3360 c : \ \ users \ \ JH \ \ anaconda 3 \ \ python . exe ,//注意:该路径取决于您的python安装路径。
file_regex:^[]*File\(.*?)\ ,行([0-9]*),
选择器 :source.python ,
编码 :utf-8 ,
env 3360 { python ione coding 3360 utf8 }//通过这句话,使代码一致,都是UTF8。
}然后用ctrl B编译,返回“utf-8”,打印中文成功。
但在此之前,因为尝试了很多方法,anaconda插件的自动完成代码无法使用,所以重新加载。
三、Anaconda插件的正确使用
1.阅读官方指南。官方的建议是最好每个项目独立设置。
2.根据官方建议,创建一个新项目,编辑项目,并在sublime-project文件中写入:
{
构建系统 :
[
{
名称 :AnacondaPythonBuilder ,
选择器 :source.python ,
编码 :utf-8 ,
env : { python ioencoding quot
;:"utf8"},\\使编码一致
"shell_cmd":"C:\\Users\\jh\\Anaconda3\\python.exe-u\"$file\"",\\解释器路径
}
],
"folders":
[
{
"follow_symlinks":true,
"path":"."
}
],
"settings":
{
"python_interpreter":"C:\\Users\\jh\\Anaconda3\\python.exe"\\解释器路径
}
}保存。
3、在Preferences>Package Settings>Anaconda,在那里会发现两个不同的条目,Settings-Default和Settings-User分别选择1和2。这些文件中的任何选项都必须放置在全局范围内。在Settings-User中写入:
{//http://damnwidget.github.io/anaconda/IDE/盛行IT软件开发工作室,免费的在线学习python平台,欢迎关注!//"python_interpreter":"C:\\Users\\jh\\Anaconda3\\envs\\tensorflow\\python.exe",
"python_interpreter":"C:\\Users\\jh\\Anaconda3\\python.exe",
"auto_python_builder_enabled":false,
"suppress_word_completions":true,//禁用掉SublimeText原生的自动补全
"suppress_explicit_completions":true,
"complete_parameters":true,
"anaconda_linter_phantoms":true,//提示错误,识别代码中的语法错误,代码建议,格式建议等
"pyflakes_explicit_ignore"://告诉PyFlakes要忽视哪些警告
[
//"Redefined",
"UnusedImport"
//"UndefinedName",
//"UndefinedLocal",
//"UnusedVariable,",
//"UndefinedExport",
//"DuplicateArgument",
//"RedefinedWhileUnused"
],
"anaconda_linting_behaviour":"always",//模式
"anaconda_linting":true,
"anaconda_linter_delay":2.0,//周期
"swallow_startup_errors":true,
"env":{"PYTHONIOENCODING":"utf8"},
}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。