2010-11-27 14 views
147

सबसे अच्छा जावास्क्रिप्ट यूआरएल डिकोड उपयोगिता क्या है? एन्कोडिंग भी अच्छा होगा और jQuery के साथ अच्छी तरह से काम करना एक अतिरिक्त बोनस है।JavaScript URL डिकोड समारोह

+35

किया आप 'एन्कोड की जांच करें eURIComponent' और 'decodeURIComponent'? – Gumbo

+0

क्या वाकई वही बात है? –

+2

@at: वही बात क्या है? – Gumbo

उत्तर

209

मैं encodeURIComponent() और decodeURIComponent() भी उपयोग किया है।

+1

धन्यवाद लोग! सही उत्तर की तरह दिखता है, लेकिन गम्बो ने पहले जवाब दिया .. मुझे लगता है कि वह क्रेडिट –

+15

क्रेडिट का हकदार है यह एक अपूर्ण जवाब है। @anshuman द्वारा नीचे urlDecode() कार्यान्वयन देखें। –

+2

अच्छा लेकिन यह '+' संकेतों को नहीं हटाया। @ अंशुमन के जवाब मुझे – MusikAnimal

224

यहां एक संपूर्ण समारोह (PHPJS से लिया गया) है:

function urldecode(str) { 
    return decodeURIComponent((str+'').replace(/\+/g, '%20')); 
} 
+32

+1 के साथ प्रतिनिधित्व कर रहे हैं के साथ काम नहीं करता: यह सच urldecode बहुत बहुत शुक्रिया – SinistraD

+1

यह वही है, के रूप में + एन्कोड किया जा रहा अंतरिक्ष के मामले संभालती है, मैं PHP के urlencode() फ़ंक्शन के साथ डेटा एन्कोड किए जाने पर उपयोग करने के लिए आवश्यक था। –

+0

मेरे लिए सुपर उपयोगी और लागू करने के लिए एक नैनोसेकंद लिया। धन्यवाद! –

9
decodeURIComponent(mystring); 

आप कोड के इस बिट का उपयोग करके मानकों को पारित कर दिया प्राप्त कर सकते हैं:

//parse URL to get values: var i = getUrlVars()["i"]; 
function getUrlVars() { 
    var vars = [], hash; 
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
    for (var i = 0; i < hashes.length; i++) { 
     hash = hashes[i].split('='); 
     vars.push(hash[0]); 
     vars[hash[0]] = hash[1]; 
    } 
    return vars; 
} 

या करने के लिए इस एक लाइनर पैरामीटर प्राप्त करें:

location.search.split("your_parameter=")[1] 
+2

आपको इसके बजाय 'window.location.search' का उपयोग करना चाहिए। – aloisdg

3
//How decodeURIComponent Works 

function proURIDecoder(val) 
{ 
    val=val.replace(/\+/g, '%20'); 
    var str=val.split("%"); 
    var cval=str[0]; 
    for (var i=1;i<str.length;i++) 
    { 
    cval+=String.fromCharCode(parseInt(str[i].substring(0,2),16))+str[i].substring(2); 
    } 

    return cval; 
} 

document.write(proURIDecoder(window.location.href)); 
+0

धन्यवाद, यह मेरे लिए काम किया। decodeURIComponent मेरे लिए काम नहीं किया (विकृत यूआरआई अनुक्रम)। – Smile4ever

5

उपयोग इस

unescape(str); 

मैं एक महान जे एस प्रोग्रामर नहीं हूँ, सब की कोशिश की, और इस भयानक काम किया!

+1

कूल जवाब है, लेकिन ऐसा लगता है कि [obsoleted] है (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions?redirectlocale=en-US&redirectslug=JavaScript%2FGuide%2FFunctions#escape_and_unescape_functions (Obsoleted_above_JavaScript_1.5)) 'decodeURIComponent के पक्ष में()' गैर- ASCII वर्ण के गरीब समर्थन की वजह से। –

1

यदि आप urlencode का उपयोग करके PHP में डेटा एन्कोड करने के लिए ज़िम्मेदार हैं, तो PHP के rawurlencode जावास्क्रिप्ट के decodeURIComponent के साथ + चरित्र को प्रतिस्थापित करने की आवश्यकता के बिना काम करता है।

1

यहाँ मैं क्या इस्तेमाल किया है:

जावास्क्रिप्ट में:

var url = "http://www.mynewsfeed.com/articles/index.php?id=17"; 
var encoded_url = encodeURIComponent(url); 

var decoded_url = decodeURIComponent(encoded_url); 

PHP में:

$url = "http://www.mynewsfeed.com/articles/index.php?id=17"; 
$encoded_url = url_encode(url); 

$decoded_url = url_decode($encoded_url); 

तुम भी इसे यहाँ ऑनलाइन की कोशिश कर सकते हैं: http://www.mynewsfeed.x10.mx/articles/index.php?id=17

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