http://rubygems.org/gems/string_utf8
gem install string_utf8
给 String 加了一个 utf8! 方法,会使用一系列的字符集去猜测,直到可以正确转成 utf8 为止。目前主要是自己用在中文的辨识上,自己用在很多项目里面,感觉还是很方便的。
用法示例:
require 'string/utf8' p File.read( 'input.txt' ).utf8! #不用去关心原来是什么编码
这个不错,编码一直是个问题。
好东西啊~
Ruby 1.9 好像也可以达到吧 force_encoding
#3 楼 @huacnlee 那个 force_encoding 好像不能转码那种有 bom 的 utf8,反正感觉不怎么好用。。
@bony 哦,这样啊
@huacnlee 核心也是用了 force_encoding https://github.com/qhwa/string_utf8/blob/33c55bf77f9e95f705fd1326b2587878e459e3e2/lib/string/utf8.rb
ruby 确实比 python 更强大,灵活
.....
这个功能实现也需要做一个 gem ? 我总觉得是不是有点太太大才小用了....
直接猜测,貌似又有什么现实意义呢?
换句话说,大多数情况下,不猜也可以知道先 force_encoding 什么编码,少数情况下,一猜肯定猜错几率应该不低吧。
上周写一个功能的时候发现 Ruby 1.9+ 里面用下面的方法才好使,force_encoding 有问题。
ec = Encoding::Converter.new("gbk","UTF-8") ec.convert(gbk_text)