牛骨文教育服务平台(让学习变的简单)
博文笔记

ruby字符串的encoding,force_encoding,encode,encode!转码(编码转换)

创建时间:2016-06-29 投稿人: 浏览次数:1663

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,
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。