2012-05-09 16 views
7

यहाँ के साथ उमलॉट का उपयोग कैसे करें समस्या है: रूबी के यूआरआई पुस्तकालय उमलॉट के साथ सौदा नहीं करता है; यानीमाणिक के यूआरआई पुस्तकालय

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

मैं इससे कैसे निपट सकता हूं? यह रूबी 1.9.2 है, बीटीडब्ल्यू।

+0

यह अन्य यूनिकोड वर्णों के साथ होता है, न केवल उन लोगों के साथ। –

+2

लाइब्रेरी का अधिकार, ये वर्ण यूरिस में अवैध हैं। आपको उनसे बच जाना चाहिए। –

+1

ब्राउज़र यूआरएल में उमोट्स के साथ सौदा कर सकते हैं ठीक है; मैं ब्राउज़र कैसे करता हूं? – radiospiel

उत्तर

13

कॉल 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')) 
+0

यह कमाल है! मैं पूरी तरह से पता योग्य उपयोग नहीं करना चाहता था और यहां यह यूआरआई के साथ एक वैध समाधान है। – ujifgc

4

Addressable मणि क्या आप आईरिस से निपटने के लिए उपयोग करना चाहते हैं। पार्स से पहले

+0

बहुत बढ़िया, एक आकर्षण की तरह काम करता है। – radiospiel

+0

फिर, आपको शायद जवाब स्वीकार करना चाहिए ताकि अन्य लोग जान सकें और इसलिए शॉन कुछ gnarly नए प्रतिष्ठा अंक प्राप्त कर सकते हैं। :) – vlasits

+0

क्षमा करें, मैंने जवाब को ऊपर उठाकर सोचा कि मैं इसे स्वचालित रूप से स्वीकार करूंगा। यह अब तय है, और मुझे आशा है कि मुझे अगली बार याद आएगा;) – radiospiel