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 ,
|