如何处理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?)
网址在浏览器中正常运行。
答案 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