背景
最近在用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。