下面是问题: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,顺便说一句。
下面是问题: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,顺便说一句。
呼叫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宝石是你想用来处理IRIs。
真棒,作品像一个魅力。 – radiospiel
然后,你应该接受答案,以便其他人可以知道,所以肖恩可以得到一些粗糙的新声望点。 :) – vlasits
对不起,我认为通过upvoting答案我会自动接受它。现在已经修复了,我希望我记得下一次;) – radiospiel
这发生在其他unicode字符上,而不仅仅是那些带有元音变音的字符。 –
图书馆的权利,这些字符在uris中是非法的。你应该逃避它们。 –
浏览器可以在URL中处理变音符号;我怎么做浏览器呢? – radiospiel