2009-03-08 14 views
32

जब मैं एक यूआरएल के इनपुटस्ट्रीम के माध्यम से एक्सएमएल पढ़ता हूं, और फिर यूआरएल को छोड़कर सब कुछ काटता हूं, तो मुझे "http://cliveg.bu.edu/people/sganguly/player/%20Rang%20De%20Basanti%20-%20Tu%20Bin%20Bataye.mp3" मिलता है।आप जावा में यूनेस्पेप यूआरएल कैसे करते हैं?

जैसा कि आप देख सकते हैं, वहां बहुत सारे "% 20" हैं।

मैं चाहता हूं कि यूआरएल से बच निकले।

क्या जावा में ऐसा करने का कोई तरीका है, बिना किसी तृतीय-पक्ष लाइब्रेरी का उपयोग किए?

+0

बस पैडेंटिक होने के लिए, "सामान्य यूनिकोड" जैसी कोई चीज़ नहीं है। यूटीएफ 8 यूनिकोड टेक्स्ट का प्रतिनिधित्व करने के कई तरीकों में से एक है। लेकिन कोई "सत्य" कैननिकल प्रतिनिधित्व नहीं है। – jalf

+0

जैसा कि जॉन और एनजी ने कहा, इसका यूनिकोड या यूटीएफ -8 के साथ कुछ लेना देना नहीं है। आप शीर्षक बदलना चाहेंगे। –

उत्तर

54

यह अनचाहे एक्सएमएल नहीं है, यह यूआरएल एन्कोडेड टेक्स्ट है। मुझे लगता है जैसे आप यूआरएल तारों पर निम्नलिखित का उपयोग करना चाहते हैं।

URLDecoder.decode(url); 

यह आपको सही टेक्स्ट देगा। आपके द्वारा प्रदान की गई डीकोडिंग का नतीजा यह है।

http://cliveg.bu.edu/people/sganguly/player/ Rang De Basanti - Tu Bin Bataye.mp3 

% 20 एक बच निकला अंतरिक्ष चरित्र है। उपरोक्त प्राप्त करने के लिए मैंने URLDecoder ऑब्जेक्ट का उपयोग किया।

+42

वह विधि बहिष्कृत है। URLDecoder.decode (स्थान, "यूटीएफ -8") का प्रयोग करें; –

0

मैं इस विधि जब मैं विशेष वर्ण á, é, í, आदि जैसे मेरे (शायद जंगली) अनुमान widechars उचित रूप से इनकोडिंग नहीं किया जा रहा है का उपयोग कर ... अच्छी तरह से समस्या आ रही है, कम से कम मैं करने के लिए उम्मीद कर रहा था %C2%BF के बजाय %uC2BF जैसे अनुक्रम देखें।

संपादित: मेरे बुरा, इस पोस्ट URL एन्कोडिंग और जावास्क्रिप्ट का भागना दृश्यों के बीच का अंतर बताते हैं: URI encoding in UNICODE for apache httpclient 4

1

URLDecoder.decode(String s) जावा 5

आप URLDecoder.decode(String s, String enc) का उपयोग करना चाहिए के बाद से मान्य नहीं है।

उपयोग करने के लिए एन्कोडिंग के बारे में:

नोट: World Wide Web Consortium Recommendation कहा गया है कि UTF-8 इस्तेमाल किया जाना चाहिए। ऐसा नहीं कर सकता है incompatibilites परिचय।

संबंधित मुद्दे