我正在使用官方ruby gem包装器的Twitter API。
当我做Twitter :: Search.new(“关键字”)时。它返回一个带有文本字段的哈希,看起来像这样:
text:“Merci @Isabouriaud @ nicod92160 @NicolasAtger Watson”une des r \ u00E9alisations“
我知道这是unicode但无法找到在ruby中以纯文本格式转换此字符串的方法。它与我的数据库无关,因为我正在显示推文......
我只需要在“réalisations”中转换“r \ u00E9alisations”的功能
我试过了: ActiveSupport :: JSON.decode(“\”\ u00E9 \“”)=> é 但 ActiveSupport :: JSON.decode(“\”\ invit \ u00E9 \“”)!=invité(我多么想要)
有什么想法吗?
非常感谢。
解决方案
我不得不使用最新的json gem并用它解析它。目前用于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
答案 0 :(得分:0)
你看到的是ruby终端中unicode字符串的预表示。如果你把它写到一个文件并用一些支持unicode的编辑器打开它,重音应该看起来很好。
您可以设置$ KCODE ='UTF-8'来为终端修复此问题。