Sublime中开发Ruby
目录
背景Sublime相关默认的文件存储编码:UTF8默认的输出控制台编码:UTF8修改默认的输出控制台编码Ruby相关默认的代码解析编码为:ASCII和编码相关的一些方法如何在Sublime中输出用Ruby执行命令行工具的返回结果备注参考资料
背景返回目录
最近在用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。
第三步:修改文件并将其保存到压缩包中,修改内容如下:

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

第四步:重启Sublime。
Ruby相关返回目录
默认的代码解析编码为:ASCII返回目录
我们可以修改这个配置,在第一行增加如下注释即可:

1 # coding: utf-8

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

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

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

1 # coding: utf-8
2
3 puts __ENCODING__ # 源文件编码:UTF-8
4 puts Encoding.default_external # 运行环境编码:GBK
5 puts Encoding.locale_charmap # 本地环境编码:CP936
6 puts "段光伟".encoding # 字面量编码:UTF-8
7
8 dir = `dir`.encoding # 命令行返回结果编码:GBK
9 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。
Sublime中开发Ruby的更多相关文章
- Ruby:Sublime中开发Ruby需要注意的Encoding事项
背景 最近在用Sublime作为开发环境学习Ruby,本文就记录一下Ruby和Sublime在编码方面的问题. Sublime相关 默认的文件存储编码:UTF8 Sublime文件默认存储编码为UTF ...
- [Tool] 使用Sublime Text开发Objective-C
[Tool] 使用Sublime Text开发Objective-C 前言 随着iPhone的热卖,开发iPhone APP所使用的Objective-C,也慢慢成为了热门的程序语言之一.本篇文章介绍 ...
- 已解决】Sublime中运行带input或raw_input的Python代码出错:EOFError: EOF when reading a line(转)
[问题] 在折腾: [已解决]Sublime Text 2中运行Python程序出错:The system cannot find the file specified 的过程中,虽然解决了找不到py ...
- sublime 前端开发工具
http://code.kpman.cc/2014/10/14/sublime-text-3-mac-%E6%8C%87%E5%8D%97/ gif 屏幕录制:http://recordit.co/ ...
- 如何在sublime中使用sass
搞了好久,终于把sass搞定了. 最开始,我是想使用koala来实现对sass的实时编译的,但是每当我保存的时候,总是弹出erro错误,即无法编译生成css文件,百度了半天,问了好久,这个问题还是没能 ...
- sublime中css输入分号后自动提示的烦恼
sublime开发前端确实好用,有好多些个的插件,轻量便捷,但是在使用sublime中的一些插件的时候总是会遇到困扰,跟自己想象中的不一样,比如在使用SublimeCodeIntel插件的时候,就会遇 ...
- sublime 下面开发
sublime 下面开发 开发 ptyon 简单环境 1. 下载sublime 3 https://download.sublimetext.com/Sublime%20Text%20Build%20 ...
- 如何在sublime中使用sftp
在开发中我们通常会遇到一个问题——如何通过一款编辑器(或者IDE)便捷的同步线上代码.目前比较热门的编辑器有sublime,atom等,他们都有sftp功能,鉴于本人更喜欢用轻量级的编辑器,那我就在这 ...
- Openfire3.9.3源代码导入eclipse中开发配置指南
这篇文章向大家介绍一下,如何把openfire3.9.3源码导入eclipse中,编译并启动的详细过程. 首先得感谢这篇文章的作者,http://www.micmiu.com/opensource/o ...
随机推荐
- cocos2dx3.2 推断音效是否播放
SimpleAudioEngine类中增加一函数 例如以下 bool isEffectPlaying(unsigned int nSoundId); 定义例如以下 bool SimpleAudioEn ...
- 教你一步一步部署.net免费空间OpenShift系列之四------绑定域名、使用CDN加速
很抱歉这几天没有时间,有人问我怎么绑定域名的问题也没有答复,下面进入正题,惊闻ASP.Net要开源了,难道.Net春天要来了?不废话,上回书说,部署完毕ASP.Net网站后,直接访问不能访问(嗯,众所 ...
- javascript中类的属性研究
原文:javascript中类的属性研究 本篇文章主要针对javascript的属性进行分析,由于javascript是一种基于对象的语言,本身没有类的概念,所以对于javascript的类的定义有很 ...
- [CLR via C#]5.1 基元类型
原文:[CLR via C#]5.1 基元类型 某些数据类在开发中非常常用,以至于许多编译器允许代码已简化的语法来操作它们.例如可以使用以下语法来分配一个整数: System.Int32 a = ne ...
- jQuery随记汇总
1.jQuery操作行内样式style中的某一项的值:>> <div id="test" style=" display:none;"> ...
- C#中使用REDIS
C#中使用REDIS 上一篇>> 摘要 上一篇讲述了安装redis客户端和服务器端,也大体地介绍了一下redis.本篇着重讲解.NET4.0 和 .NET4.5中如何使用redis和C# ...
- TDD(测试驱动开发)
TDD(测试驱动开发)培训录 2014年我一直从事在敏捷实践咨询项目,这也是我颇有收获的一年,特别是咨询项目的每一点改变,不管是代码质量的提高,还是自组织团队的建设,都能让我们感到欣慰.涉及人的问题都 ...
- HEAP CORRUPTION DETECTED
发生主要是由于这个问题给写入超出预分配的空间,注意检查越界情况 版权声明:本文博客原创文章,博客,未经同意,不得转载.
- ASP.NET 5 Overview
ASP.NET 5概观 (ASP.NET 5 Overview) http://www.asp.net/vnext/overview/aspnet-vnext/aspnet-5-overview AS ...
- 六大利器助Java程序开发事半功倍
实用的开发工具对于Java程序开发者来说,工作起来事半功倍.本文中小编将为大家列举包括开发环境.分析测试.代码保护等实用工具. 开发环境 Sonarqube Sonarqube是一个开源平台,是一款代 ...