ここに問題があります:RubyのURIライブラリはウムラウトを扱いません。すなわちrubyのURIライブラリでウムラウトを使用する方法
irb> require "uri"
irb* URI("http://abc.de/äöü")
URI::InvalidURIError: bad URI(is not URI?): http://abc.de/äöü
どうすれば対処できますか?これはRuby 1.9.2、btwです。
ここに問題があります:RubyのURIライブラリはウムラウトを扱いません。すなわちrubyのURIライブラリでウムラウトを使用する方法
irb> require "uri"
irb* URI("http://abc.de/äöü")
URI::InvalidURIError: bad URI(is not URI?): http://abc.de/äöü
どうすれば対処できますか?これはRuby 1.9.2、btwです。
コール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'))
これはすばらしいです!私は完全にAddressableを使いたくなかったし、ここではURIを持つ有効な解決策だ。 – ujifgc
Addressable宝石は、IRIに対処するために使いたいものです。
素晴らしい、魅力のように動作します。 – radiospiel
それから、他の人にも分かるように答えを受け入れるべきだから、Seanは新しい評判のポイントを手に入れることができます。 :) – vlasits
申し訳ありませんが、私はそれを自動的に受け入れる答えをupvotingと思った。これは今修正されており、次回はそのことを覚えておいてほしいと思っています;) – radiospiel
これは、ウムラウトを持つものだけでなく、他のユニコード文字でも発生します。 –
ライブラリーの権利では、これらの文字はurisでは不正です。あなたはそれらをエスケープする必要があります。 –
ブラウザはURLのウムラウトをうまく処理できます。どのようにブラウザが何をしますか? – radiospiel