2
我有一個字符串鍵一個簡單的常量定義哈希:哈希串獲得的編碼錯誤
MY_CONSTANT_HASH = {
'key1' => 'value1'
}
現在,我已經注意到,encoding.name
的關鍵是US-ASCII
。但是,Encoding.default_internal
事先設定爲UTF-8
。爲什麼它沒有正確編碼?我不能force_encoding
後來,因爲該對象在這一點上凍結,所以我得到這個錯誤:
can't modify frozen String
PS:我使用的紅寶石1.9.3p0(2011-10-30修訂33570) 。
這是設置內聯字符串編碼的官方方式嗎?此外,在該鏈接下,您可以閱讀以下內容:「區域設置編碼(__ ENCODING __),而不是default_internal,用作所創建字符串的編碼。」 – m33lky 2012-02-03 22:29:07
@ m33lky:我認爲這個「魔法評論」破解的效果與官方一樣,還有其他一些變化。取決於語言環境設置的唯一問題是它們在應用程序或源文件外部,因此如果您更改語言環境,使用其他計算機工作,忘記在服務器上設置語言環境,則可能會出現奇怪的非本地效果,... – 2012-02-03 22:41:01