9

問題は次のとおりです。RubyのURIライブラリはウムラウトを処理しません。すなわち

irb> require "uri"
irb* URI("http://abc.de/äöü")
URI::InvalidURIError: bad URI(is not URI?): http://abc.de/äöü

どうすればそれに対処できますか?これはRuby1.9.2です。

4

2 に答える 2

14

解析する前にURI.encodeを呼び出します。

require 'uri'
uri = URI(URI.encode("http://abc.de/äöü"))

補足として、URLにハッシュフラグメント( #something)が含まれている場合は、手動で分割する必要があることに注意してください。

require 'uri'
uri = URI(URI.encode('http://example.com/page.html') + '#' + URI.encode('anchor'))
于 2013-05-26T14:53:08.160 に答える
5

アドレス可能なgemは、IRIを処理するために使用したいものです。

于 2012-05-09T16:01:47.310 に答える