জাভাস্ক্রিপ্টে এনকোড ইউআরএল?


2469

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

var myUrl = "http://example.com/index.html?param=1&anotherParam=2";
var myOtherUrl = "http://example.com/index.html?url=" + myUrl;

আমি ধরে নিলাম যে আপনার myUrlদ্বিতীয় লাইনে চলকটি এনকোড করতে হবে ?


22
এনকোডুরি () এবং ডিকোডুরি () এ অনুসন্ধান করার চেষ্টা করুন ।
জ্যাক দ্য হিউম্যান


1
আপনি এই সরঞ্জামটি এখানে ব্যবহার করতে পারেন: phillihp.com/toolz/url-encode-decode
phillihp

2
এনকোডিউরিকম্পোনমেন্ট ()
অ্যান্ড্রু

উত্তর:


2791

অন্তর্নির্মিত ফাংশন এনকোডিউআরআইকিউম্পোনমেন্ট (স্ট্র) এবং এনকোডুরি (স্ট্র) পরীক্ষা করে দেখুন
আপনার ক্ষেত্রে এটি কাজ করা উচিত:

var myOtherUrl = 
       "http://example.com/index.html?url=" + encodeURIComponent(myUrl);

12
@ সিএমএস দেওয়া ব্যাখ্যাটি কীভাবে যুক্ত করবেন? escapeএছাড়াও একটি বৈধ বিকল্প।
hitautodestruct

11
@ সিএমএস অনুসারে encodeURIইউআরএল এনকোডিংয়ের জন্য সত্যই নিরাপদ নয়।
ifnot

13
@AnaelFavre কারণ এটি পুরো URL টি, যা যেমন অক্ষর অনুমতি দেয় না এনকোড বোঝানো হয় :, /, @ইত্যাদি.এই 2 পদ্ধতি বিনিমেয় ব্যবহার করা হয় না, আপনি জানতে হবে কি আপনি ডান পদ্ধতি ব্যবহার করতে এনকোডিং করছে।
বুউ এনগুইন


এই পৃষ্ঠার অন্য উত্তরে যেমন উল্লেখ করা হয়েছে , এই সাইটটি এই পদ্ধতিটি ব্যবহারের কারণটি খুব সুন্দরভাবে বর্ণনা করেছে
ব্র্যাড পার্কস

1520

আপনার কাছে তিনটি বিকল্প রয়েছে:

  • escape() এনকোড হবে না: @*/+

  • encodeURI() এনকোড হবে না: ~!@#$&*()=:/,;?+'

  • encodeURIComponent() এনকোড হবে না: ~!*()'

কিন্তু আপনার ক্ষেত্রে, যদি আপনি একটি প্রেরণ করতে ইচ্ছুক URL টি একটি মধ্যে GETঅন্যান্য পৃষ্ঠার পরামিতি, আপনি ব্যবহার করা উচিত escapeবা encodeURIComponent, কিন্তু না encodeURI

স্ট্যাক ওভারফ্লো প্রশ্ন সেরা অনুশীলন: আরও আলোচনার জন্য এস্কেপ, বা এনকোডুরি / এনকোডুরিউকোম্পোন্ট দেখুন


76
পালানোর সাথে ব্যবহৃত অক্ষর এনকোডিং পরিবর্তনশীল। এনকোডুরি এবং এনকোডিউরিক কম্পোনেন্টের সাথে লেগে থাকুন, যা ইউটিএফ -8 ব্যবহার করে।
এরিকসন

6
সাবধান হও. যে পালাবার মত, তার ইউনিকোড পালাবার ক্রম মধ্যে নন- ASCII অক্ষর পরিবর্তন করে %uxxx
opteronn

4
আমি এনকোডিউরিক কম্পোনেন্ট ব্যবহার করছি এবং এটি পাইপের অক্ষরগুলিকে এনকোড করবে না তা লক্ষ্য করছি
কেভজিটলার

15
@ কেভজিটলার - এটি কেন করা উচিত? পাইপগুলির কোনও ইউআরআইতে অর্থগত গুরুত্ব নেই।
নিকফ

4
@ জিওভান্নিপি: যারা জার্মান, ফরাসী, জাপানি, চীনা, আরবি অক্ষরগুলিকে ইনপুট হিসাবে মঞ্জুরি দেয় এবং জিইটি বা পোষ্টের মাধ্যমে এইগুলি পরামিতিগুলি পাস করে।
সেংসে

180

সঙ্গে লাঠি encodeURIComponent()। ফাংশনটি encodeURI()এমন অনেকগুলি অক্ষরকে এনকোড করতে বিরক্ত করে না যা ইউআরএলগুলিতে অর্থপূর্ণ গুরুত্ব রয়েছে (যেমন "#", "?" এবং "&")। escape()অবচয় করা হয়েছে, এবং "+" অক্ষরগুলি এনকোড করতে বিরক্ত করে না, যা সার্ভারের এনকোডড স্পেস হিসাবে ব্যাখ্যা করা হবে (এবং এখানে অন্যদের দ্বারা উল্লেখ করা হয়েছে, URL- এনকোড নন-এএসসিআইআই অক্ষর সঠিকভাবে হয় না)।

পার্থক্য encodeURI()এবংencodeURIComponent() অন্য কোথাও একটি সুন্দর ব্যাখ্যা আছে । আপনি যদি কোনও কিছু এনকোড করতে চান যাতে এটি কোনও ইউআরআইর উপাদান হিসাবে নিরাপদে অন্তর্ভুক্ত করা যায় (উদাহরণস্বরূপ কোয়েরি স্ট্রিং প্যারামিটার হিসাবে), আপনি ব্যবহার করতে চান encodeURIComponent()


83

সেরা উত্তর ব্যবহার করা encodeURIComponentউপর মান কোয়েরি স্ট্রিং (এবং কোথাও) এ।

তবে, আমি দেখতে পেয়েছি যে অনেকগুলি API গুলি "+" "" এর সাথে প্রতিস্থাপন করতে চায় তাই আমাকে নিম্নলিখিতগুলি ব্যবহার করতে হয়েছিল:

const value = encodeURIComponent(value).replace('%20','+');
const url = 'http://example.com?lang=en&key=' + value

escapeবিভিন্ন ব্রাউজারে পৃথকভাবে প্রয়োগ করা হয় এবং encodeURIঅনেকগুলি অক্ষর এনকোড করে না (যেমন # এবং এমনকি /) - এটি একটি সম্পূর্ণ ইউআরআই / ইউআরএল এটি ভঙ্গ না করে ব্যবহার করা হয়েছে - যা অতি সহায়ক বা সুরক্ষিত নয়।

এবং @ জোহেম নীচের বিষয়টিকে উল্লেখ করেছেন, আপনি encodeURIComponent()একটি (প্রতিটি) ফোল্ডারের নাম ব্যবহার করতে চাইতে পারেন , তবে যে কোনও কারণেই এই API গুলি +ফোল্ডারের নামগুলিতে চান না বলে এতটা পুরানো encodeURIComponentকাজ দুর্দান্ত।

উদাহরণ:

const escapedValue = encodeURIComponent(value).replace('%20','+');
const escapedFolder = encodeURIComponent('My Folder'); // no replace
const url = `http://example.com/${escapedFolder}/?myKey=${escapedValue}`;

22
দয়া করে মনে রাখবেন, প্রথম প্রশ্ন চিহ্নের পরে আপনার কেবলমাত্র +20 টি + চিহ্ন সহ প্রতিস্থাপন করা উচিত (যা URL এর 'ক্যোয়ারী' অংশ)। যাক আমি ব্রাউজ করতে চাই http://somedomain/this dir has spaces/info.php?a=this has also spaces। এটিকে রূপান্তর করা উচিত: http://somedomain/this%20dir%20has%spaces/info.php?a=this%20has%20also%20spacesতবে অনেকগুলি প্রয়োগগুলি ক্যোরিস্ট্রিংয়ে '%' 20 কে '+' দ্বারা প্রতিস্থাপন করতে দেয়। তবুও, আপনি ইউআরএল-এর পাথ-বিভাগে '+' এর সাথে '% 20' প্রতিস্থাপন করতে পারবেন না, যদি না আপনার +জায়গার পরিবর্তে ডিরেক্টরি না থাকে তবে এটি খুঁজে পাওয়া ত্রুটির কারণ হবে।
জোহেম কুয়েজ্পারস

@ জোহেম কুয়েজ্পার্স, অবশ্যই আপনি "+" কোনও ডিরেক্টরিতে রাখবেন না। আমি এটিকে কেবল ক্যোয়ারি প্যারামিটার মানগুলিতে প্রয়োগ করতে পারি (বা প্রয়োজন হলে কীগুলি), পুরো ইউআরএল, এমনকি পুরো কোয়েরি স্ট্রিং নয়।
রায়ান টেলর

আমি এনকোডিংয়ের ফলাফলের চেয়ে
মানটিতে

1
@ njzk2 দুর্ভাগ্যক্রমে encodeURIComponent('+')আপনাকে দিবে %2B, সুতরাং আপনাকে দুটি নিয়মিত ভাব প্রকাশ করতে হবে ... যা আমি মনে করি যে দয়া করে এটি কেন কাজ করে, কারণ '+' হ'ল শেষ পর্যন্ত আলাদাভাবে এনকোড করা হয়েছে।
রায়ান টেলর

% 20 "+" তে অনুবাদ করার কোনও কারণ নেই। এএসসিআইআই স্পেসের বৈধ অব্যাহতি ক্রমটি% 20, "+" নয় যা আরএফসি 3986 (সরঞ্জাম. ietf.org/html/rfc3986 ) এ উল্লিখিত হয়নি । "+" 1990 এর দশকে ব্যবহৃত হয়েছিল; এটি এখন অপ্রচলিত এবং কেবলমাত্র উত্তরাধিকারের কারণে সমর্থিত। এটি ব্যবহার করবেন না।
xhienne

40

আপনি jQuery ব্যবহার করা হয় যদি আমি $.paramপদ্ধতিতে যেতে হবে । এটি ইউআরএল মানগুলিতে কোনও অবজেক্ট ম্যাপিং ক্ষেত্রগুলিকে এনকোড করে, যা প্রতিটি মানগুলিতে একটি পালানোর পদ্ধতি কল করার চেয়ে পড়া সহজ।

$.param({a:"1=2", b:"Test 1"}) // gets a=1%3D2&b=Test+1

আমি মনে করি যে প্রদত্ত উদাহরণটি যথেষ্ট। আপনার যদি api.jquery.com/jquery.param
ম্যাকসেম কোজলেঙ্কো

প্রায় সবাই jQuery ব্যবহার করে এবং আমি এনকুরিউরিওকোম্পোন্টের পরিবর্তে এর সাথে সত্যই বেশি স্বাচ্ছন্দ্য বোধ করি
সাইরিল ডুচন-ডরিস

12

এনকোডিউআরআইকিউম্পোনেন্ট () হ'ল উপায়।

var myOtherUrl = "http://example.com/index.html?url=" + encodeURIComponent(myUrl);

তবে আপনার মনে রাখা উচিত যে পিএইচপি সংস্করণ থেকে ছোট পার্থক্য রয়েছে urlencode()এবং @ সিএমএস উল্লিখিত হিসাবে এটি প্রতিটি চরকে এনকোড করবে না। Http://phpjs.org/funitions/urlencode/ এ ছেলেরা জেএস এর সমতুল্য তৈরি করেছে phpencode():

function urlencode(str) {
  str = (str + '').toString();

  // Tilde should be allowed unescaped in future versions of PHP (as reflected below), but if you want to reflect current
  // PHP behavior, you would need to add ".replace(/~/g, '%7E');" to the following.
  return encodeURIComponent(str)
    .replace('!', '%21')
    .replace('\'', '%27')
    .replace('(', '%28')
    .replace(')', '%29')
    .replace('*', '%2A')
    .replace('%20', '+');
}

10

একটি ইউআরএল এনকোড করতে, যেমন আগেই বলা হয়েছে, আপনার দুটি ফাংশন রয়েছে:

encodeURI()

এবং

encodeURIComponent()

উভয়ই বিদ্যমান থাকার কারণ হ'ল প্রথমটি ইউআরএল সংরক্ষণ করে অনেক বেশি কিছু অপ্রচলিত রাখার ঝুঁকি নিয়ে, যখন দ্বিতীয়টি প্রয়োজনীয় সমস্ত কিছু এনকোড করে।

প্রথমটির সাথে, আপনি সদ্য পালানো ইউআরএল ঠিকানা বারে অনুলিপি করতে পারেন (উদাহরণস্বরূপ) এবং এটি কার্যকর হবে। তবে আপনার অপ্রকাশিত '&' র ক্ষেত্রের ডিলিমিটারগুলিতে হস্তক্ষেপ হবে, '=' গুলি ক্ষেত্রের নাম এবং মানগুলিতে হস্তক্ষেপ করবে এবং '+' এর স্থান ফাঁকা লাগবে। আপনি যখন পালাচ্ছেন তার ইউআরএল প্রকৃতি সংরক্ষণ করতে চাইলে সাধারণ ডেটার জন্য, এটি কাজ করে।

দ্বিতীয়টি হ'ল আপনার স্ট্রিংয়ে কোনও কিছুই ইউআরএল হস্তক্ষেপ না করার বিষয়টি নিশ্চিত করার জন্য আপনাকে যা করতে হবে তা হ'ল। এটি বিভিন্ন গুরুত্বহীন চরিত্রগুলিকে অপরিবর্তিত রেখে দেয় যাতে ইউআরএল হস্তক্ষেপ ছাড়াই যতটা সম্ভব মানুষের পঠনযোগ্য থাকে। এই ভাবে এনকোড করা একটি URL আর ইউকেপ ছাড়াইয়া URL হিসাবে আর কাজ করবে না।

সুতরাং আপনি যদি সময় নিতে পারেন তবে আপনি সর্বদা এনকোডিউআরআইসি কম্পোনেন্ট () ব্যবহার করতে চান - নাম / মান জোড়া যুক্ত করার আগে কোয়েরি স্ট্রিংয়ে যোগ করার আগে এই ফাংশনটি ব্যবহার করে নাম এবং মান উভয় এনকোড করে।

এনকোডুরি () ব্যবহার করার কারণ নিয়ে আমার বেশ কঠিন সময় আসছে - আমি এটি স্মার্ট লোকদের কাছে রেখে দেব।


5

অনুরূপ ধরণের জিনিস আমি সাধারণ জাভাস্ক্রিপ্ট দিয়ে চেষ্টা করেছি

function fixedEncodeURIComponent(str){
     return encodeURIComponent(str).replace(/[!'()]/g, escape).replace(/\*/g, "%2A");
}

5

মার্জিত উপায়

আমার নম্র মতে ক্যোয়ারী প্যারামগুলিকে এনকোড করার সর্বাধিক মার্জিত উপায় হ'ল প্যারামগুলির মতো একটি বিষয় তৈরি করা

const queryParams = { param1: 'value1', param2: 'value2' }

এবং তারপরে এটি এনকোড করুন:

const queryString = new URLSearchParams(queryParams).toString()

এই উত্তরে উল্লিখিত হিসাবে: https://stackoverflow.com/a/53171438/7284582


4

ডাবল এনকোডিং প্রতিরোধের জন্য এনকোডিংয়ের আগে ইউআরএলটি ডিকোড করা ভাল ধারণা (যদি আপনি ব্যবহারকারীর প্রবেশ করা ইউআরএলগুলির সাথে কাজ করে থাকেন, যা ইতিমধ্যে এনকোডড থাকতে পারে)।

আমাদের abc%20xyz 123ইনপুট হিসাবে বলতে দিন (একটি স্থান ইতিমধ্যে এনকোড করা হয়েছে):

encodeURI("abc%20xyz 123")            //   wrong: "abc%2520xyz%20123"
encodeURI(decodeURI("abc%20xyz 123")) // correct: "abc%20xyz%20123"

4

ইউআরএল এনকোডিং কি:

ইউআরএল-এর ভিতরে বিশেষ বর্ণগুলি উপস্থিত থাকলে একটি URL এনকোড করা উচিত। উদাহরণ স্বরূপ:

console.log(encodeURIComponent('?notEncoded=&+'));

আমরা এই উদাহরণে পর্যবেক্ষণ করতে পারি যে স্ট্রিং ব্যতীত সমস্ত অক্ষর notEncoded% চিহ্ন সহ এনকোড করা আছে। ইউআরএল এনকোডিং শতাংশ শতাংশ এনকোডিং হিসাবেও পরিচিত কারণ এটি একটি বিশেষ% দিয়ে সমস্ত বিশেষ অক্ষরকে ছাড়িয়ে যায়। তারপরে এই% চিহ্নের পরে প্রতিটি বিশেষ অক্ষরের একটি স্বতন্ত্র কোড থাকে has

কেন আমাদের ইউআরএল এনকোডিং দরকার:

কয়েকটি অক্ষরের একটি URL স্ট্রিংয়ের একটি বিশেষ মান থাকে। উদাহরণস্বরূপ,? অক্ষর একটি কোয়েরি স্ট্রিংয়ের সূচনা বোঝায়। ওয়েবে কোনও সংস্থান সফলভাবে সনাক্ত করতে, কোনও অক্ষর যখন স্ট্রিংয়ের অংশ বা ইউআরএল কাঠামোর অংশ হিসাবে বোঝানো হয় তখন তার মধ্যে পার্থক্য করা প্রয়োজন।

আমরা কীভাবে ইউএসএলতে ইউআরএল এনকোডিং অর্জন করতে পারি:

জেএস ইউটিলিটি ফাংশনটিতে বিল্ডের গুচ্ছ সরবরাহ করে যা আমরা সহজেই ইউআরএল এর এনকোড করতে ব্যবহার করতে পারি। এগুলি দুটি সুবিধাজনক বিকল্প:

  1. encodeURIComponent(): যুক্তি হিসাবে একটি ইউআরআইয়ের অংশ নেয় এবং এনকোডযুক্ত ইউআরআই স্ট্রিংটি প্রদান করে।
  2. encodeURI(): একটি যুক্তি হিসাবে একটি ইউআরআই লাগে এবং এনকোডযুক্ত ইউআরআই স্ট্রিং প্রদান করে returns

উদাহরণ এবং সতর্কতা:

পুরো ইউআরএল (স্কিম সহ, যেমন https: //) পাস না করার বিষয়ে সচেতন হন encodeURIComponent()। এটি আসলে এটি একটি কার্যক্ষম নয় এমন URL এ রূপান্তর করতে পারে। উদাহরণ স্বরূপ:

// for a whole URI don't use encodeURIComponent it will transform
// the / characters and the URL won't fucntion properly
console.log(encodeURIComponent("http://www.random.com/specials&char.html"));

// instead use encodeURI for whole URL's
console.log(encodeURI("http://www.random.com/specials&char.html"));

আমরা পর্যবেক্ষণ করতে পারি encodeURIComponentযে আমরা পুরো ইউআরএল রেখেছি যাতে ফোরওয়ার্ড স্ল্যাশগুলি (/) এছাড়াও বিশেষ অক্ষরে রূপান্তরিত হয়। এর ফলে ইউআরএল আর সঠিকভাবে কাজ করবে না।

সুতরাং (নামটি বোঝায়) ব্যবহার করুন:

  1. encodeURIComponent ইউআরএল-এর নির্দিষ্ট অংশে যা আপনি এনকোড করতে চান।
  2. encodeURI পুরো ইউআরএলে যা আপনি এনকোড করতে চান।

3

আমার পক্ষে কিছুই কাজ করেনি। আমি যা দেখছিলাম তা হ'ল লগইন পৃষ্ঠার এইচটিএমএল, 200 কোড সহ ক্লায়েন্টের দিকে ফিরে আসছিল 30 লগইন পৃষ্ঠার পাঠ্য)।

লগইন নিয়ামকটিতে, আমি এই লাইনটি যুক্ত করেছি:

Response.Headers["land"] = "login";

এবং বিশ্বব্যাপী আজাক্স হ্যান্ডলারটিতে আমি এটি করেছি:

$(function () {
    var $document = $(document);
    $document.ajaxSuccess(function (e, response, request) {
        var land = response.getResponseHeader('land');
        var redrUrl = '/login?ReturnUrl=' + encodeURIComponent(window.location);
        if(land) {
            if (land.toString() === 'login') {
                window.location = redrUrl;
            }
        }
    });
});

এখন আমার কোনও সমস্যা নেই, এবং এটি কবজির মতো কাজ করে।


2

এনক্রোড ইউআরএল স্ট্রিং

    var url = $ ( অবস্থান )। attr ( 'href' ); // বর্তমান URL পান // অথবা Var URL = 'ফোল্ডার / index.html PARAM = # 23dd & noob = হ্যাঁ?' ; // অথবা একটি নির্দিষ্ট করুন 
    
      

var encodedUrl = encodeURIComponent(url); console.log(encodedUrl); //outputs folder%2Findex.html%3Fparam%3D%2323dd%26noob%3Dyes for more info go http://www.sitepoint.com/jquery-decode-url-string

2

এখানে একটি হল লাইভ ডেমো এর encodeURIComponent()এবং decodeURIComponent()ফাংশন সালে নির্মিত জাতীয়:

<!DOCTYPE html>
<html>
  <head>
    <style>
      textarea{
        width:30%;
        height:100px;
      }
    </style>
    <script>
      // encode string to base64
      function encode()
      {
        var txt = document.getElementById("txt1").value;
        var result = btoa(txt);
        document.getElementById("txt2").value = result;
      }
      // decode base64 back to original string
      function decode()
      {
        var txt = document.getElementById("txt3").value;
        var result = atob(txt);
        document.getElementById("txt4").value = result;
      }
    </script>
  </head>
  <body>
    <div>
      <textarea id="txt1">Some text to decode
      </textarea>
    </div>
    <div>
      <input type="button" id="btnencode" value="Encode" onClick="encode()"/>
    </div>
    <div>
      <textarea id="txt2">
      </textarea>
    </div>
    <br/>
    <div>
      <textarea id="txt3">U29tZSB0ZXh0IHRvIGRlY29kZQ==
      </textarea>
    </div>
    <div>
      <input type="button" id="btndecode" value="Decode" onClick="decode()"/>
    </div>
    <div>
      <textarea id="txt4">
      </textarea>
    </div>
  </body>
</html>

1

আপনি এসপি আই লাইব্রেরি ব্যবহার করতে পারেন এবং নীচের ফাংশনটি ব্যবহার করে আপনার ইউআরএলকে এনকোড করতে পারেন। ফাংশনটি নিশ্চিত করে যে '/' এনকোডিংয়ে হারিয়ে না গেছে যখন বাকী বাক্য সামগ্রী এনকোড করা থাকে:

function encodeUrl(url)
{
    String arr[] = url.split("/");
    String encodedUrl = "";
    for(int i = 0; i<arr.length; i++)
    {
        encodedUrl = encodedUrl + ESAPI.encoder().encodeForHTML(ESAPI.encoder().encodeForURL(arr[i]));
        if(i<arr.length-1) encodedUrl = encodedUrl + "/";
    }
    return url;
}

https://www.owasp.org/index.php/ESAPI_JavaScript_Readme


1

fixedEncodeURIComponentকঠোরভাবে আরএফসি 3986 মেনে চলার জন্য ফাংশনটি ব্যবহার করুন :

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

1

আপনার encodeURIComponent()সরাসরি ব্যবহার করা উচিত নয় ।

আরএফসি 3986 দেখুন: ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (ইউআরআই): জেনেরিক সিনট্যাক্স

সাব-ডিলিমস = "!" / "$" / "&" / "" "/" ("/") "/" * "/" + "/", "/"; " / "="

সংরক্ষিত অক্ষরগুলির উদ্দেশ্য হ'ল সীমিত অক্ষরগুলির একটি সেট সরবরাহ করা যা কোনও ইউআরআইয়ের মধ্যে অন্যান্য ডেটা থেকে পৃথক।

আরএফসি 3986-এ ইউআরআই সংজ্ঞা থেকে এই সংরক্ষিত অক্ষরগুলি পালিয়ে যায় না encodeURIComponent()

MDN ওয়েব ডক্স: এনকোডিউআরআইকিউম্পোন্ট ()

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

MDN ওয়েব ডক্স ফাংশনটি ব্যবহার করুন ...

function fixedEncodeURIComponent(str) {
  return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
    return '%' + c.charCodeAt(0).toString(16);
  });
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.