জাভাস্ক্রিপ্ট ইউআরএল ডিকোড ফাংশন


157

সেরা জাভাস্ক্রিপ্ট ইউআরএল ডিকোড ইউটিলিটি কি? এনকোডিংটিও খুব সুন্দর হবে এবং jQuery এর সাথে ভাল কাজ করা একটি যুক্ত বোনাস।


36
আপনি না পরীক্ষা করেছেন encodeURIComponentএবং decodeURIComponent?
গম্বো

আসলেই কি একই জিনিস?
এ।

@ গম্বো: ইউআরএল এনকোডিং এবং ইউআরএল ডিকোডিংয়ের একই জিনিস - ব্লুবেরি
.

উত্তর:


219

1
ধন্যবাদ বন্ধুরা! সঠিক উত্তর মত দেখায়, কিন্তু গাম্বো প্রথমে এই উত্তর দিলেন .. আমি মনে তিনি অবশ্যই কৃতিত্বের দাবিদার
এ।

16
এটি একটি অসম্পূর্ণ উত্তর। @ অানশুমান দ্বারা নীচে urlDecode () বাস্তবায়ন দেখুন।
স্টিভন ফ্রান্সোল্লা

3
দুর্দান্ত তবে এটি '+' চিহ্নগুলি সরাতে পারেনি। @
অঙ্কুশনের

2
22+ এ ++++
মিমি

237

এখানে একটি সম্পূর্ণ ফাংশন ( পিএইচপিজেএস থেকে নেওয়া ):

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

34
+1: এটিই সত্যিকারের বার্ডকোড, স্থান হিসাবে
এনকোডড থাকার কেসটি

1
পিএইচপি-র ইউরেলকোড () ফাংশনটির সাথে ডেটা এনকোড করা অবস্থায় এটি ব্যবহার করার দরকার ছিল।
স্কট কেক-ওয়ারেন

1
যদি আমি ভুল না হয়ে থাকি তবে এটি + ২০% হিসাবে ডিকোডিং হয়, স্থান হিসাবে নয় - আপনি এখানে যা চেয়েছিলেন তা আসলে এটি নয়? আপনি স্থানটি চান, কোনও এনকোডড চরিত্রের অন্য সংস্করণ নয় ... না?
ক্রিস মোসচিনি

8
@ ক্রিসমোসচিনি: না, এটি সঠিক কারণ ডিকোড কল করার আগে প্রতিস্থাপনটি ঘটে।
lfaraone

1
তোমাকে অনেক ধন্যবাদ!! এটি jquery এ স্ট্রিংগুলি হ্যান্ডেল করার একটি নিখুঁত উপায় যা পূর্বে পিএইচপি দিয়ে urlncoded হয়েছে, ঠিক আমার যা প্রয়োজন তা !!
দান্তে কুলারী

9

এটা ব্যবহার কর

unescape(str);

আমি কোনও দুর্দান্ত জেএস প্রোগ্রামার নই, সব চেষ্টা করে দেখেছি এবং এটি দুর্দান্ত কাজ করেছে!


2
দুর্দান্ত উত্তর, তবে দেখে মনে হচ্ছে এটি অসdecodeURIComponent() -অক্ষর অক্ষরগুলির দুর্বল সমর্থনের কারণে এটির পক্ষে অচল
ব্র্যাড কোচ

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পরিবর্তে আপনার ব্যবহার করা উচিত ।
অ্যালোআইএসডিজি

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));

আপনাকে ধন্যবাদ, এটি আমার জন্য কাজ করেছে। ডিকোডিউআরআইকিউম্পোনেন্ট আমার জন্য কাজ করেনি (ত্রুটিযুক্ত ইউআরআই ক্রম)।
হাসি 4ver

2

আপনি যদি ইউরেনকোড ব্যবহার করে পিএইচপি-তে ডেটা এনকোড করার জন্য দায়বদ্ধ হন, পিএইচপি-র কাঁচাল্লেঙ্কোড জাভাস্ক্রিপ্টের ডিকোডেরিউআরকিউম্পোন্ট সঙ্গে + অক্ষর প্রতিস্থাপনের প্রয়োজন ছাড়াই কাজ করে।


0

আমি যা ব্যবহার করেছি তা এখানে:

জাভাস্ক্রিপ্টে:

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

var decoded_url = decodeURIComponent(encoded_url);

পিএইচপি-তে:

$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



0

decodeURIComponent()ভাল, তবে আপনি কখনও ওটি encodeURIComponent()সরাসরি ব্যবহার করতে চান না । এই মত সংরক্ষিত অক্ষর অব্যাহতি ব্যর্থ *, !, ', (, এবং )। পরীক্ষা করে দেখুন RFC3986 , যেখানে এই যে আরো তথ্যের জন্য সংজ্ঞায়িত করা হয়। মজিলা বিকাশকারী নেটওয়ার্ক ডকুমেন্টেশন একটি ভাল ব্যাখ্যা এবং একটি সমাধান উভয়ই দেয়। ব্যাখ্যা ...

আরএফসি 3986 (যা রিজার্ভ!, ', (,), এবং *) মেনে চলা আরও কঠোর হতে, যদিও এই অক্ষরগুলির কোনও আনুষ্ঠানিকভাবে ইউআরআই সীমানা ব্যবহার না করে, নিম্নলিখিতগুলি নিরাপদে ব্যবহার করা যেতে পারে:

সমাধান ...

function fixedEncodeURIComponent(str) {
  return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
    return '%' + c.charCodeAt(0).toString(16);
  });
}

আপনি যদি নিশ্চিত না হন তবে জেএসবিন ডটকম-এ একটি ভাল, কার্যকারী ডেমো পরীক্ষা করে দেখুন । এটিকে সরাসরি ব্যবহার করে জেএসবিন.কম এ খারাপ, কর্মরত ডেমো দিয়ে তুলনা করুনencodeURIComponent()

ভাল কোড ফলাফল:

thing%2athing%20thing%21

এর থেকে খারাপ কোড ফলাফল encodeURIComponent():

thing*thing%20thing!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.