REST客户端和外来字符

时间:2014-08-09 21:47:58

标签: ruby-on-rails ruby character-encoding special-characters rest-client

如何处理REST Client中的外来字符?即:

RestClient.get "http://api.example.com/1.0/items.json;q=æøå"

在Ruby on Rails中遗憾地返回:

URI::InvalidURIError in MyController#index
bad URI(is not URI?)

网址在浏览器中正常运行。

1 个答案:

答案 0 :(得分:2)

根据其docs

  

如果您需要规范化URI,例如与国际合作   资源标识符(IRI),使用可寻址的gem   (codeable.rubyforge.org/api/)在你的代码中:

require 'addressable/uri'
RestClient.get(Addressable::URI.parse("http://www.詹姆斯.com/").normalize.to_str)

或者你可以事先尝试编码/转义字符串:

http://ruby-doc.org/stdlib-1.9.3/libdoc/uri/rdoc/URI/Escape.html#method-i-encode