背景

最近在用Sublime作为开发环境学习Ruby,本文就记录一下Ruby和Sublime在编码方面的问题。

Sublime相关

默认的文件存储编码:UTF8

Sublime文件默认存储编码为UTF8,我们几乎不用修改这个选项。

默认的输出控制台编码:UTF8

在按快捷键【Control + B】执行代码的时候,所有输出都会被Python(Sublime是用Python开发的)接收,然后输出到控制台,输出的字符串编码必须是UTF8编码。

修改默认的输出控制台编码

注意:开发Ruby是不用修改这个文件的。

第一步:找到D:\Program Files\Sublime Text 2\Pristine Packages\Ruby.sublime-package这个文件并用压缩软件打开。

第二步:编辑压缩包中的这个文件:Ruby.sublime-build。

第三步:修改文件并将其保存到压缩包中,修改内容如下:

 {
"cmd": ["ruby", "$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.ruby",
"encoding": "utf-8"
}

第四步:重启Sublime。

Ruby相关

默认的代码解析编码为:ASCII

我们可以修改这个配置,在第一行增加如下注释即可:

 # coding: utf-8

注意:Ruby1.9可以使用这个注释,2.0会自动根据存储编码进行解析的;这行注释只影响源代码的词法结构,例如:可以使用中文变量名、字符串字面量的编码为UTF8。

和编码相关的一些方法

 # coding: utf-8

 puts __ENCODING__ # 源文件编码:UTF-8
puts Encoding.default_external # 运行环境编码:GBK
puts Encoding.locale_charmap # 本地环境编码:CP936
puts "段光伟".encoding # 字面量编码:UTF-8

如何在Sublime中输出用Ruby执行命令行工具的返回结果

用ruby执行命令行工具返回的结果是GBK编码,必须转换为UTF8才能输出到Sublime控制台。

 # coding: utf-8

 puts __ENCODING__ # 源文件编码:UTF-8
puts Encoding.default_external # 运行环境编码:GBK
puts Encoding.locale_charmap # 本地环境编码:CP936
puts "段光伟".encoding # 字面量编码:UTF-8 dir = `dir`.encoding # 命令行返回结果编码:GBK
puts `dir`.encode("utf-8") # 必须转码后才能被Sublime输出到控制台

注意:如果不用Sublime开发,直接在命令行运行ruby程序是不需要转换的。

备注

字符集和编码我还没有入门,有这方面资料的朋友记得给我推荐一下。

参考资料

http://www.360doc.com/content/12/0511/09/992979_210237955.shtml

http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html

Ruby:Sublime中开发Ruby需要注意的Encoding事项的更多相关文章

  1. Sublime中开发Ruby

    Ruby:Sublime中开发Ruby需要注意的Encoding事项 目录 背景Sublime相关默认的文件存储编码:UTF8默认的输出控制台编码:UTF8修改默认的输出控制台编码Ruby相关默认的代 ...

  2. ubuntu 14.04中安装 ruby on rails 环境(填坑版) 呕血推荐

    环境:在win7 上Vmware虚拟机环境中安装的ubuntu 14.04 开发相关: ruby 2.2.0 rails 4.2.0 sublime text 3 本文说明:所有的命令均在$ 之后,若 ...

  3. Ruby与Python开发的环境IDE配置(附软件的百度云链接)

    Ruby开发环境配置 1.Aptana_RadRails(提示功能不好,开发Ruby不推荐) 链接:http://pan.baidu.com/s/1i5q96K1 密码:yt04 2.Aptana S ...

  4. win7安装ruby on rails开发环境

    前言 我们看到很多文章说ruby环境windows它是非常困难的基础上,这将是各种稀奇古怪的问题,因此,建议linux和mac发. 可是我依照教程搭了下,问题也不算太多.总过大概花费了2个半小时左右就 ...

  5. ubuntu 14.04中安装 ruby on rails 环境

    环境:在win7 上Vmware虚拟机环境中安装的ubuntu 14.04 1. bundle install 时,报json错误可以看出是在安装nokogiri时遇到了问题,此时执行 sudo ap ...

  6. Ruby on Rails入门——macOS 下搭建Ruby Rails Web开发环境

    这里只介绍具体的过程及遇到的问题和解决方案,有关概念性的知识请参考另一篇:Ruby Rails入门--windows下搭建Ruby Rails Web开发环境 macOS (我的版本是:10.12.3 ...

  7. 用VirtualBox和vagrant在win7×64上搭建ruby on rails 开发环境

    下载准备 1.vagrant 官方  WINDOWS Universal (32 and 64-bit) http://www.vagrantup.com/downloads.html 2.Virtu ...

  8. 在linux,windows上安装ruby on rails开发环境

    ruby是一个非常优秀的语言,ruby的精髓rails可以让web开发的效率成倍的提高,下面就介绍一下我搭建rails环境的过程.windows下搭建ruby rails web开发环境本篇文章主要是 ...

  9. Ruby Rails学习中:Ruby内置的辅助方法,基础内容回顾补充

    一. Ruby内置的辅助方法 1.打开文件:app/views/layouts/application.html.erb(演示应用的网站布局) 来咱把注意力放在圈起来的那一行: 这行代码使用 Rail ...

随机推荐

  1. bzoj 1176 CDQ分治

    思路:首先我们将问题转换一下,变成问在某个点左下角的权值和,那么每一个询问可以拆成4的这样的询问,然后 进行CDQ 分治,回溯的时候按x轴排序,然后用树状数组维护y的值. #include<bi ...

  2. lua常用函数

    select (index, ···) 功能:当index为数字将返回所有index大于index的参数: 如:select(2,"a","b","c ...

  3. 转载:tar命令批量解压方法总结

    由于linux的tar命令不支持批量解压,所以很多网友编写了好多支持批量解压的shell命令,收集了一下,供大家分享: 第一:for tar in *.tar.gz;  do tar xvf $tar ...

  4. Kail Linux渗透测试教程之Recon-NG框架

    Kail Linux渗透测试教程之Recon-NG框架 信息收集 信息收集是网络攻击最重要的阶段之一.要想进行渗透攻击,就需要收集目标的各类信息.收集到的信息越多,攻击成功的概率也就越大.本章将介绍信 ...

  5. RxSwift 系列(二)

    前言 Subject是一个代理,它既是Observer,也是Observable.因为它是一个Observer,它可以订阅一个或多个Observable;因为它是一个Observable,它又可以被其 ...

  6. property staticmathod classmethod 反射

    使用@property 在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: s = Student() s.score = 9999 这显然不合逻 ...

  7. 【hihoCoder 1513】小Hi的烦恼

    http://hihocoder.com/problemset/problem/1513 h[j][i]记录第j个学科排名小于等于i的状态,bitset压位就可以了. #include<bits ...

  8. BZOJ1073 k短路(A*算法)

    A*算法,也叫启发式搜索,就是设计一个预估函数,然后在搜索的过程中进行有序的搜索,我们设到目前状态的花费为f(x),到目标状态的估计花费为h(x),那么我们按照h(x)+f(x)排序即可,这道题里起点 ...

  9. BZOJ2434 NOI2011阿狸的打字机

    询问x这个串在y中出现的次数. fail数组有一个性质就是一旦a的fail指向b那么b所代表的字串一定是a的后缀. 所以我们看fail树(即按fail反向建树)中x的子树有多少y的结点即可. 这个操作 ...

  10. 我的OI生涯 第四章

    第四章 晚上来机房的人越来越多了,我也注意到一个常年独自坐在一个角落的男人————郝哥. 郝哥为人很安静,只是那时我还不知道他好不好,就没有与他交流过什么,这个优秀的男人以后我们还会提到,这里先不讲. ...