0

公式の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
4

1 に答える 1

0

表示されるのは、ruby ターミナルでの Unicode 文字列の表示です。これをファイルに書き込んで、Unicode をサポートするエディタで開くと、アクセントがきれいに見えるはずです。

$KCODE = 'UTF-8' を設定して、端末でこれを修正できます。

于 2011-11-23T09:44:18.460 に答える