Sublime Text 修改文件编码和换行符

Posted 凡心所向,素履以往

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sublime Text 修改文件编码和换行符相关的知识,希望对你有一定的参考价值。

1、Sublime Text 修改文件编码和换行符

1.1 设置项优化


    "ignored_packages":
    [
        "Vintage",
    ],
    // 设置主题
    "theme": "auto",
    "color_scheme": "Mariana.sublime-color-scheme",
    // 设置字体大小
    "font_size": 13,
    // 显示文件编码格式
    "show_encoding": true,
    // 显示换行符格式
    "show_line_endings": true,

 

1.2 改变文件换行符

 

1.3 改变文件编码

sublime text 3 utf 8乱码怎么办

GBK编码文件的打开
为了方便演示,首先创建了一个由GBK编码的html文件,我们使用Sublime打开后的效果如下图,注意看sublime的左下角,除了行列信息并无其他,一般而言,说明sublime是按照UTF8编码打开的文件:
解决Sublime Text 3在GBK编码下的中文乱码问题
为了解决编码问题,需要安装ConvertToUTF8插件,打开sublime的“package control“,输入inp,可以看到install package选项(未安装package control的网友可以按下面的经验安装,本篇不再赘述):
11Sublime Text3的插件管理Package Control安装
解决Sublime Text 3在GBK编码下的中文乱码问题
点击install package,稍等几秒钟,在弹出的输入框中输入“Convert”,可以看到会检索出包括ConvertToUTF8在内的一些组件,相关功能都有描述。点击“ConvertToUTF8”进行安装即可:
解决Sublime Text 3在GBK编码下的中文乱码问题
安装完成后,点击Sublime左上角的“file”按钮,可以看到下拉菜单中多出了两个按钮,如下图。我们可以通过这些新增的按钮对文件编码进行转换。
解决Sublime Text 3在GBK编码下的中文乱码问题
此时,再次打开我们刚刚的测试文件,会发现中文显示正常,同时,sublime左下角显示出了GBK字样,表明该文件的编码是GBK。如下图:
解决Sublime Text 3在GBK编码下的中文乱码问题
END
对于其他编码格式的通常做法
接下来我们来讲解遭遇乱码的通用做法。首先要明白的是,什么是编码?简单来说,就是从我们日常使用的字符转换成数字的过程,因为计算机里存储的其实只是二进制的数字。所以编码和解码分别是字符转换成数字和数字转换成字符的行为。而不同的编码规则之间,往往是不能互通的,比如学习计算机时最早接触的ASCII码,用于显示现代英语和其他西欧语言,里面根本没有汉字的编码规则!
解决Sublime Text 3在GBK编码下的中文乱码问题
后来各个国家和组织推出了自己的编码规则,我国则有GB2312、GBK等编码规范,繁体字则有BIG5,以及国际上最通用的UTF-8编码等等。这些编码规范有的兼容,有的则不兼容,当用不兼容的编码规范去解码显示文件时,就会出现乱码问题!所以对于乱码,最好的办法是切换解码规则。
在sublime中,我们可以使用“Reopen with Encoding”菜单选择使用不同的编码规范打开文件,或者是使用我们刚刚安装的插件带来的“Reload with Encoding”中的编码方式重新打开。
解决Sublime Text 3在GBK编码下的中文乱码问题
解决Sublime Text 3在GBK编码下的中文乱码问题
参考技术A 编码问题,可能是新手常遇到的一个高频问题。
一般来说,先用 chardet 模块检验 response.content 的字节编码,再用 decode 解码就好了

检测编码

发现编码是 utf-8
那么用 utf -8 解码就好了

还是报错
不对啊,我明明用的 utf-8 编码,为什么提示 gbk 解码呢?
在 cmd 里面运行一下代码(或者 pycharm)

能正常打印出来
控制变量法,证明是编辑器的问题了
最后发现,之前配置 Sublime 的 Python 环境时,是这么设置的

就是这里,出大问题
cp936 其实就是 GBK,说明 Sublime 里面的编译环境一直是 GBK,不管你代码里面怎么改。
那么解决方法,也很简单,把编辑器的编码改成 utf-8 就好了
直接把 cp936 换成 utf8 是没用的,要改成这样

保存设置,重新运行代码
参考技术B Sublime Text 3是我MacBook Pro最喜欢的代码编辑器,没有之一,因为她的性感高亮代码配色,更因为它的小巧,但是它默认不支持GBK的编码格式,因此打开GBK的代码文件,如果里面有中文的话,就会乱码

第一步:安装Package Control

大家如果是在官网下载的Sublime Text 3,那么首先需要安装一个

Package Control包,这是一个用来安装其他插件的包,不管装什么插件,首先要先装这个包才行;

安装Sublime Package Control非常简单。

1、打开Preferences菜单,并选择 Browse Packages…

2、系统会打开Sublime Text 3的Packages文件夹,回到上一级菜单,然后打开Installed Packages文件夹

3、下载并将下载的Package Control.sublime-package拷贝到Installed Packages文件夹(注意此处是Installed Packages,不是Packages文件夹),这个如果不知道怎么下载的拷贝名字直接百度,第一个就是下载链接

4、重启Sublime Text 3

第二步:安装插件ConvertToUTF8和Codecs33
这两个插件才是解决乱码的重点,网上写了很多都是没有Codecs33这个插件,最新的其实不装这个插件还是不能解决全部乱码,还有乱码存在;在perferences选项一栏下面有个Package Control,点击Package Control,上面会出来一个输入框,我们输入install,就会自动有提示那个install package,我们点击一下install package,输入框会消失,稍等一下又会弹出个输入框。这时我们可以输入需要安装的插件包(ConvertToUTF8和Codecs33)了(一个装完安装第二步再装第二个),安装两个都成功后再重启打开就没有中文乱码了
参考技术C 前几天安装Sublime Text 3后打开中文乱码,就在网上搜索了一番,结果大部分都说要ConvertToUtf8插件,关键很多从放的下载地址都要注册登录还要积分啥的,太麻烦!后来终于给我找到了不那么麻烦的方法;
首先从菜单View - Show Console或者 ctrl + ~ 快捷键,调出 console。然后将下面的命令拷贝到输入框中,回车,等待安装成功。

import urllib.request,os,hashlib; h ='7183a2d3e96f11eeadd761d777e62404' +'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'PackageControl.sublime-package'; ipp = sublime.installed_packages_path();urllib.request.install_opener( urllib.request.build_opener(urllib.request.ProxyHandler()) ); by = urllib.request.urlopen('http://sublime.wbond.net/' + pf.replace(' ', ' ')).read(); dh =hashlib.sha256(by).hexdigest(); print('Error validating download(got %s instead of %s), please try manual install' % (dh, h)) if dh!= h else open(os.path.join( ipp, pf), 'wb').write(by)
这个地址有sublimeText2和sublimeText3的PackageControl安装指导:https://sublime.wbond.net/installation

经过上面安装了Package Control后,我们就可以通过快捷键Ctrl+Shift+P 打开Package Control来安装插件了。在打开的输入框中输入 install,会根据你的输入自动提示,选择 Install Package。
  
  等待,然后又会弹出一个输入框,让你输入你要安装的插件。
  
  我们要安装支持UTF8编码的一个插件,只需要在输入框中输入convert,自动匹配后,选择ConvertToUTF8 插件,回车,等待,安装完毕,这样,ST就支持UTF-8编码了。

以上是关于Sublime Text 修改文件编码和换行符的主要内容,如果未能解决你的问题,请参考以下文章

sublime text 怎么转换windows linux文本文件的格式

sublime text自动换行怎么设置

sublime text 显示“unregistered”是啥原因?

如何在 Sublime Text 中查看文件的当前编码?

sublime text2里用emmet插件写css怎么才能不换行

sublime text 3 utf 8乱码怎么办