উত্তর:
আমি এনকোডিউরিক কম্পোনেন্ট ব্যবহার করেছি () এবং ডিকোডেরিউআরআইকিউম্পোন্ট () ও ।
এখানে একটি সম্পূর্ণ ফাংশন ( পিএইচপিজেএস থেকে নেওয়া ):
function urldecode(str) {
return decodeURIComponent((str+'').replace(/\+/g, '%20'));
}
এটা ব্যবহার কর
unescape(str);
আমি কোনও দুর্দান্ত জেএস প্রোগ্রামার নই, সব চেষ্টা করে দেখেছি এবং এটি দুর্দান্ত কাজ করেছে!
decodeURIComponent()
-অক্ষর অক্ষরগুলির দুর্বল সমর্থনের কারণে এটির পক্ষে অচল ।
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]
window.location.search
পরিবর্তে আপনার ব্যবহার করা উচিত ।
//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));
আপনি যদি ইউরেনকোড ব্যবহার করে পিএইচপি-তে ডেটা এনকোড করার জন্য দায়বদ্ধ হন, পিএইচপি-র কাঁচাল্লেঙ্কোড জাভাস্ক্রিপ্টের ডিকোডেরিউআরকিউম্পোন্ট সঙ্গে + অক্ষর প্রতিস্থাপনের প্রয়োজন ছাড়াই কাজ করে।
আমি যা ব্যবহার করেছি তা এখানে:
জাভাস্ক্রিপ্টে:
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
var uri = "my test.asp?name=ståle&car=saab";
console.log(encodeURI(uri));
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!
encodeURIComponent
এবংdecodeURIComponent
?