Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Rails 2.3.9解决Unicode?转换简单字符串_Ruby On Rails_Ruby_Unicode_Encoding_Ruby On Rails 2 - Fatal编程技术网

Ruby on rails 使用Rails 2.3.9解决Unicode?转换简单字符串

Ruby on rails 使用Rails 2.3.9解决Unicode?转换简单字符串,ruby-on-rails,ruby,unicode,encoding,ruby-on-rails-2,Ruby On Rails,Ruby,Unicode,Encoding,Ruby On Rails 2,我将Twitter API与官方的ruby gem包装一起使用 当我使用Twitter::Search.new(“关键字”)时。它返回一个带有如下文本字段的哈希: 文字:“Merci@Isabouriaud@nicod92160@NicolasAtger-Watson”这是一个很好的例子 我知道这是unicode,但找不到在ruby中将此字符串转换为纯文本的方法。这与我的数据库无关,因为我正在立即显示tweets 我只需要在“réalisations”中转换“r\u00E9alisations”

我将Twitter API与官方的ruby gem包装一起使用

当我使用Twitter::Search.new(“关键字”)时。它返回一个带有如下文本字段的哈希:

文字:“Merci@Isabouriaud@nicod92160@NicolasAtger-Watson”这是一个很好的例子

我知道这是unicode,但找不到在ruby中将此字符串转换为纯文本的方法。这与我的数据库无关,因为我正在立即显示tweets

我只需要在“réalisations”中转换“r\u00E9alisations”的函数

我试过: ActiveSupport::JSON.decode(“\”\u00E9\”)=> 但是 ActiveSupport::JSON.decode(“\”\invit\u00E9\”)!=invité(我想要它的样子)

有什么想法吗

非常感谢。

解决方案

我不得不使用最新的json gem并用它来解析它。目前用于rails 2.3的twitter gem可能不再是最新的了

我认为另一个解决方案是升级到Rails 3并使用force_编码方法

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

您看到的是unicode字符串在ruby终端中的预表示。如果您将其写入一个文件,并使用支持unicode的编辑器打开它,重音看起来应该很好


您可以设置$KCODE='UTF-8'来解决终端的问题。

大多数字符都转义了,但有些字符转义了,这很奇怪(あ, す, で) 不是…:-/是的,这是直接输出的-我花了2个小时试图找出解决方案..感谢Mosch的回答。但它也在我的web浏览器中显示出来,即使我的所有内容都用UTF-8编码。我找到了一个解决方案,将编辑我的帖子。