ruby字符串的encoding,force_encoding,encode,encode!转码(编码转换)
ruby字符串的encoding,force_encoding,encode,encode!转码(编码转换)
ruby1.9开始对字符串编码支持已经比较完善,我们可以直接通过使用String类的实例方法encoding,force_encoding, encode, encode!进行相关的编码操作。
encoding
ruby1.9中为每个字符串对象增加了encoding信息
?| 1 2 3 |
1.9.3p392
:001
> "我还是不懂".encoding
=>
#<Encoding:UTF-8>
1.9.3p392
:002
>
|
force_encoding
某些情况下这个附加编码信息可能不正确我们可以修正它
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 |
1.9.3p392
:011
> x="我还是不懂"
=>
"我还是不懂"
1.9.3p392
:012
> x.encoding
=>
#<Encoding:UTF-8>
1.9.3p392
:013
> x.bytes.to_a
=>
[230,
136,
145,
232,
191,
152,
230,
152,
175,
228,
184,
141,
230,
135,
130]
1.9.3p392
:014
> x.force_encoding "gbk"
=>
"x{E688}x{91E8}x{BF98}x{E698}x{AFE4}x{B88D}x{E687}x82"
1.9.3p392
:015
> x.encoding
=>
#<Encoding:GBK>
1.9.3p392
:016
> x.bytes.to_a
=>
[230,
136,
145,
232,
191,
152,
230,
152,
175,
|
