公式のrubygemラッパーでTwitterAPIを使用しています。
Twitter :: Search.new( "keywords")をするとき。次のようなテキストフィールドを持つハッシュを返します。
テキスト: "Merci @Isabouriaud @ nicod92160 @NicolasAtger Watson" une des r \ u00E9alisations "
これがUnicodeであることは知っていますが、この文字列をプレーンテキストのルビーに変換する方法が見つかりませんでした。ツイートをすぐに表示しているので、データベースとは何の関係もありません...
「réalisations」の「r\u00E9alisations」を変換する関数が必要です
私が試した:ActiveSupport :: JSON.decode( "\" \ u00E9 \ "")=>éしかしActiveSupport :: JSON.decode( "\" \ invit \ u00E9 \ "")!=invité(私が望む方法)
何か案が?
どうもありがとう。
解決
最新のjsongemを使用して、それを解析する必要がありました。Rails2.3用の現在のTwittergemは、おそらくもう最新ではありません。
他の解決策は、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