Ruby:Sublime中開發Ruby須要注意的Encoding事項

背景

最近在用Sublime做爲開發環境學習Ruby,本文就記錄一下Ruby和Sublime在編碼方面的問題。html

Sublime相關

默認的文件存儲編碼:UTF8

Sublime文件默認存儲編碼爲UTF8,咱們幾乎不用修改這個選項。ruby

默認的輸出控制檯編碼:UTF8

在按快捷鍵【Control + B】執行代碼的時候,全部輸出都會被Python(Sublime是用Python開發的)接收,而後輸出到控制檯,輸出的字符串編碼必須是UTF8編碼。工具

修改默認的輸出控制檯編碼

注意:開發Ruby是不用修改這個文件的。學習

第一步:找到D:\Program Files\Sublime Text 2\Pristine Packages\Ruby.sublime-package這個文件並用壓縮軟件打開。ui

第二步:編輯壓縮包中的這個文件:Ruby.sublime-build。編碼

第三步:修改文件並將其保存到壓縮包中,修改內容以下:spa

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

第四步:重啓Sublime。命令行

Ruby相關

默認的代碼解析編碼爲:ASCII

咱們能夠修改這個配置,在第一行增長以下注釋便可:code

1 # coding: utf-8

注意:Ruby1.9能夠使用這個註釋,2.0會自動根據存儲編碼進行解析的;這行註釋隻影響源代碼的詞法結構,例如:能夠使用中文變量名、字符串字面量的編碼爲UTF8。htm

和編碼相關的一些方法

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

相關文章
相關標籤/搜索