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