আপনি encodeURIComponent()বা ব্যবহার করা উচিত নয় encodeURI()। আপনার ব্যবহার করা উচিত fixedEncodeURIComponent()এবং fixedEncodeURI(), এমডিএন ডকুমেন্টেশন অনুসারে।
সম্পর্কিত encodeURI()...
যদি কেউ ইউআরএলগুলির জন্য আরও সাম্প্রতিক আরএফসি 3986 অনুসরণ করতে চায়, যা বর্গাকার বন্ধনীগুলিকে সংরক্ষিত করে (আইপিভি 6 এর জন্য) এবং এভাবে কোনও URL তৈরির সময় এনকোড না করা হয় (যেমন হোস্ট হিসাবে), নিম্নলিখিত কোড স্নিপেট সাহায্য করতে পারে:
function fixedEncodeURI(str) {
return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}
সম্পর্কিত encodeURIComponent()...
আরএফসি 3986 (যা রিজার্ভ!, ', (,), এবং *) মেনে চলা আরও কঠোর হতে, যদিও এই অক্ষরগুলির কোনও আনুষ্ঠানিকভাবে ইউআরআই সীমানা ব্যবহার না করে, নিম্নলিখিতগুলি নিরাপদে ব্যবহার করা যেতে পারে:
function fixedEncodeURIComponent(str) {
return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
return '%' + c.charCodeAt(0).toString(16);
});
}
তাহলে পার্থক্য টা কি? fixedEncodeURI()এবং fixedEncodeURIComponent()মান একই সেট রূপান্তর কিন্তু fixedEncodeURIComponent()এই সেট পরিবর্তন করে: +@?=:*#;,$&। এই সেটটি GETপ্যারামিটারগুলিতে ( &, +ইত্যাদি) ব্যবহৃত হয় , অ্যাঙ্কর ট্যাগগুলি ( #), ওয়াইল্ডকার্ড ট্যাগ ( *), ইমেল / ব্যবহারকারীর অংশ ( @) ইত্যাদি ইত্যাদি etc
উদাহরণ হিসেবে বলা যায় - তাহলে আপনি ব্যবহার encodeURI(), user@example.com/?email=me@homeসঠিকভাবে দ্বিতীয় পাঠাব না @সার্ভারে, আপনার ব্রাউজার উপযুক্ততা পরিচালনা করার জন্য ব্যতীত (হিসাবে Chrome স্বাভাবিকভাবেই প্রায়ই না)।