sublime显示中文乱码,sublime3中文乱码

  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/

  //"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软件开发工作室,免费的在线学习python平台,欢迎关注!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: