Sublime Text使用GBK编码中文乱码问题

问题来源

Sublime Text 在默认情况下是不支持GBK的编码格式的,因此打开GBK编码的文件或自己使用中文输入法写中文的时候就会乱码。

  • 打开GBK编码的文件可能会直接看到中文是乱码的
  • 中文输入法写入的字符在编辑器上看到是正常的,但是编译的时候可能提示有编码问题

解决方法

最终目的是在Sublime Text上安装ConvertToUTF8这个包

ConvertToUTF8是用来把GB2312和GBK文件转换成UTF-8编码的,作为一个程序员,使用UTF-8编码来保存是一个好习惯,尽量不要使用GB2312和GBK编码来写代码。

如果有特殊需求,编辑之后必须以GB2312和GBK编码保存(例如淘宝的开发),那么就安装GBK Encoding Support这个包吧。

步骤


  1. 安装Package Control(已经安装了的可以跳过)

    这个插件是用来搜索安装其他插件的,所以使用Sublime Text建议安装的第一个插件就是Package Control。当然,如果你安装其他插件都是使用的手动安装的方式,那么不用这个插件也无伤大雅。
    其实网络上有很多人写过怎么安装这个插件,但是目前比较容易搜索到的方法都是时间较早的了,还有一些方法已经不适用目前的情况,所以我建议直接看官网的安装步骤(官网传送门),这样不用担心根据其他人的方法做了之后还不能成功了。

    目前官网给了2种安装方法,使用命令的方式和手动安装的方式。

    自动安装。使用快捷键ctrl+`或者菜单View > Show Console的方式打开命令窗口,输入官网给的命令代码,回车键确定,等待自动安装(网络不能实现的话建议使用手动方式安装)。由于命令可能发生变化,所以建议直接去官网复制命令代码,我这里就不贴出来了。

    手动安装。可能由于各种原因,无法使用代码安装,那可以通过以下步骤手动安装Package Control:

1.点击Preferences > Browse Packages进入Package目录

2.进入Package的上层目录,然后再进入Installed Packages/目录

3.下载 Package Control.sublime-package 并复制到Installed Packages/目录

4.重启Sublime Text。

其实命令的方式也就是自动创建 Installed Packages目录 (没有的话), 然后下载Package Control.sublime-package 放到目录里面。

2.安装ConvertToUTF8

安装好Package Control之后,使用快捷键 Ctrl+Shift+P(Tools – Command Paletter),输入 install 选中Install Package并回车,输入ConvertToUTF8回车就自动安装了(注意左下角的小文字变化,会提示安装成功)

手动安装,将ConvertToUTF8打包下载并解压,将解压后的文件夹名修改为 ConvertToUTF8 ,然后将此文件夹移动到 Sublime Text 的 Packages 文件夹下(可通过 Sublime Text 菜单中的 Preferences > Browse Packages 找到 Packages 文件夹)。


插件使用方法

设置

请查看 ConvertToUTF8.sublime-settings 文件获取详细信息。为防止更新插件时被覆盖,请将个人设置保存到 User 目录中名为 ConvertToUTF8.sublime-settings 文件中。您可以在 .sublime-project 文件(可通过 Project > Edit Project 打开)中指定项目专属设置(除 encoding_list 和 max_cache_size 外)。

  • encoding_list:检测失败时显示的编码列表
  • max_cache_size:最大编码缓存数量,0 表示不缓存(默认为 100)
  • max_detect_lines:最大检测行数,0 表示不限制(默认为 600)
  • preview_action:预览文件时是否将其内容转换为 UTF-8(默认为 false)
  • default_encoding_on_create:指定新建文件的默认编码(如 GBK),空值表示使用 Sublime Text 的 default_encoding 设置(默认为 “”)
  • convert_on_load:文件装载时是否将其内容转换成 UTF-8(默认为 true)
  • convert_on_save:文件保存时是否将其内容转换成原有(或指定)编码(默认为 true)
  • convert_on_find:将 Find Results 窗口里的内容转换成 UTF-8(默认为 false)
  • lazy_reload:将文件保存到临时位置,并在切换窗口或标签时在后台自动重载(默认为 false)
  • confidence:最低可信率,检测时超过这个值将触发自动转换(默认为0.95)

使用说明

多数情况下,插件将自动对处理编码相关的事项。

如果自动转换编译仍然出错的话,说明设置还有些小问题。将File ->Reload with Encoding设置为GBK,才能自动将后面输入的中文转换为UTF-8编码。
您也可以通过 File > Set File Encoding to 菜单对文件编码进行手工转换。例如,您可以打开一个 UTF-8 编码的文件,指定保存为 GBK,反之亦然。

注意:

  • 如果 convert_on_save 被设置为 false,文件不会 被保存成指定编码
  • 在文件编码检测过程完成前请勿编辑文件
  • 若检测结果不准确,请尝试增大 max_detect_lines 的值或手工指定编码
  • 由于 API 限制,在 lazy_reload 设置为 true 时,保存文件后立即退出 Sublime Text 将造成文件被保存为UTF-8,正确的内容将在下次 Sublime Text 打开时重载

你可能感兴趣的:(工具使用)