2012-05-09 19 views
7

İşte sorun: Ruby'nin URI kitaplığı umlauts ile ilgilenmiyor; yani, bununla nasıl başa çıkabilirim? Bu Ruby 1.9.2, btw.Ruby'nin URI kitaplığına sahip umlauts nasıl kullanılır?

+0

Bu, yalnızca imleci olanlar için değil, diğer unicode karakterleriyle de olur. –

+2

Kütüphane haklı, bu karakterler uris'te yasa dışı. Onları kaçmalısın. –

+1

Tarayıcılar, URL'lerdeki URL'leri gayet iyi bir şekilde ele alabilir; Tarayıcı ne yapar? – radiospiel

cevap

13

Çağrı URI.encode ayrıştırma önce:

:

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

Bir yan not olarak, URL ( #something) Karma parçası içeriyorsa, bunu manuel bölmek gerekecek unutmayın

require 'uri' 
uri = URI(URI.encode('http://example.com/page.html') + '#' + URI.encode('anchor')) 
+0

Bu harika! Kesinlikle Adreslenebilir kullanmak istemedim ve burada, URI ile geçerli bir çözüm. – ujifgc

4

Addressable gem, IRI'lerle uğraşmak için kullanmak istediğiniz şeydir.

+0

Başar, bir çekicilik gibi çalışır. – radiospiel

+0

O zaman, muhtemelen cevabını başkalarının bilmesi için kabul etmelisiniz ve böylece Sean bazı yeni itibar noktaları kazanabilir. :) – vlasits

+0

Üzgünüz, cevabın çıkmasını otomatik olarak kabul edeceğimi düşündüm. Bu şimdi düzeltildi ve umarım bir dahaki sefere hatırlıyorum;) – radiospiel