用Rails 2.3.9解决Unicode问题?转换一个简单的字符串
我正在使用Twitter API与官方的红宝石包装。用Rails 2.3.9解决Unicode问题?转换一个简单的字符串
当我做Twitter :: Search.new(“关键字”)。它返回一个看起来喜欢这个文本字段的哈希:
文字:“留言Merci @Isabouriaud @ nicod92160 @NicolasAtger沃森" UNE DES·R \ u00E9alisations”
我知道这是unicode的,但一直没找到在ruby中以纯文本格式转换此字符串的方法。它无关,与我的数据库,因为我展示马上鸣叫......
我只需要的功能“R \ u00E9alisations”转换成“réalisations”
我想: 的ActiveSupport: :JSON.decode(“\”\ u00E9 \“”)=> 但是 ActiveSupport :: JSON.decode(“\”\ invit \ u00E9 \“”)!=invité(我想要它)
有什么想法?
非常感谢。
解决方案
我不得不使用最新的JSON宝石与它解析它。 rails 2.3的当前twitter gem可能不再是最新的。
我认为另一种解决方案是升级到Rails 3并使用force_encoding方法。
class TwitterWrapper
def self.base
"http://search.twitter.com"
end
#json_string.gsub!(/\\u([0-9a-z]{4})/) {|s| [$1.to_i(16)].pack("U")}
def self.search(keyword)
keyword = keyword.gsub(" ","%20")
read("#{base}/search.json?q=#{keyword}")["results"]
end
private
def self.read(url)
JSON.parse(Net::HTTP.get(URI.parse(url)))
end
end
你看到的是在ruby终端中的unicode字符串的prepresentation。如果你把它写入一个文件并用一些支持unicode的编辑器打开它,那么口音应该看起来很好。
您可以设置$ KCODE ='UTF-8'来解决这个问题。
谢谢莫斯科为您解答。但它也在我的网页浏览器中显示出来,即使我已经用UTF-8编码了所有东西。我找到了一个解决方案,将编辑我的帖子。 – Alextoul
大部分角色都逃脱了,这很奇怪,但有些(あ,す,で)不是......: -/ – deceze
是的,这是http://search.twitter.com/search.json的直接输出?q =关键字 - 我花了2个小时试图找出解决方案.. – Alextoul