最近在用Sublime做爲開發環境學習Ruby,本文就記錄一下Ruby和Sublime在編碼方面的問題。html
Sublime文件默認存儲編碼爲UTF8,咱們幾乎不用修改這個選項。ruby
在按快捷鍵【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。命令行
咱們能夠修改這個配置,在第一行增長以下注釋便可: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
用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。