我正在使用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
大部分角色都逃脫了,這很奇怪,但有些(あ,す,で)不是......: -/ – deceze
是的,這是http://search.twitter.com/search.json的直接輸出?q =關鍵字 - 我花了2個小時試圖找出解決方案.. – Alextoul