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


背景

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM