URL Encoder

URL এনকোডার / ডিকোডার

যেকোনো টেক্সটকে percent-encoded URL-সেফ স্ট্রিংয়ে এনকোড করুন, অথবা এনকোড করা URL-কে আবার সাধারণ টেক্সটে ডিকোড করুন। লাইভ প্রিভিউ, UTF-8 সেফ, এবং পুরোটাই আপনার ব্রাউজারের মধ্যে চলে।

Component (encodeURIComponent) unreserved নয় এমন প্রতিটি ক্যারেক্টারকে এস্কেপ করে — কোয়েরি-স্ট্রিং মান, path segment, বা যেকোনো একটি ফিল্ডের জন্য সবচেয়ে নিরাপদ। URI (encodeURI) URL স্ট্রাকচারের ক্যারেক্টারগুলো (:/?#=&) বজায় রাখে — পুরো একটি URL-এর জন্য এটি ব্যবহার করুন। Form (application/x-www-form-urlencoded) হলো Component + স্পেস '+' হয়ে যায় — যা HTML form ব্যবহার করে।

RFC 3986 এমন কিছু "unreserved" ক্যারেক্টার নির্ধারণ করে যেগুলো এনকোড করার দরকার নেই: A-Z a-z 0-9 - _. ~। বাকি সবকিছু percent-encode হয়। encodeURIComponent অতিরিক্তভাবে :/?#&= এনকোড করে যেগুলো encodeURI স্পর্শ করে না। কোয়েরি মান বনাম পুরো URL এনকোড করার সময় এই পার্থক্যটি গুরুত্বপূর্ণ।

সাধারণ টেক্সট

0 অক্ষর

এনকোড করা আউটপুট

0 অক্ষর

কেন iKit URL এনকোডার

দ্রুত, নির্ভুল, শুধুমাত্র ব্রাউজারে চলে — ডেভেলপার, কপিরাইটার, এবং যে কেউ URL ডিবাগ করছেন তাদের জন্য তৈরি।

তিনটি এনকোডিং মোড

আপনি কী এনকোড করছেন তার ওপর নির্ভর করে Component, Full URI, বা Form মোড বেছে নিন — কোয়েরি-স্ট্রিং মান, পুরো একটি URL, অথবা একটি HTML form payload।

ডিজাইনেই প্রাইভেসি

প্রতিটি এনকোড এবং ডিকোড আপনার ব্রাউজারে নেটিভ JavaScript ব্যবহার করে হয়। আপনার টেক্সট ও URL কখনো আপনার ডিভাইস ছাড়ে না।

লাইভ প্রিভিউ

প্রতিটি কীস্ট্রোকে আউটপুট আপডেট হয় — কোনো "Encode" বাটনে ক্লিক করতে হয় না, সার্ভারে কোনো রাউন্ড-ট্রিপও হয় না।

UTF-8 সেফ

ইমোজি, CJK অক্ষর, অ্যাকসেন্টযুক্ত ল্যাটিন, এবং সিরিলিক অক্ষর encodeURIComponent এবং উল্টোদিকে নির্ভুলভাবে রাউন্ড-ট্রিপ করে।

Form-style + হ্যান্ডলিং

ডিকোড করার সময় ইচ্ছেমতো '+' কে স্পেস হিসেবে ধরুন — যা HTML form-এ application/x-www-form-urlencoded-এর প্রচলিত নিয়ম।

বাল্ক ফাইল প্রসেসিং

একবারে এনকোড বা ডিকোড করতে.txt,.csv, বা.json ফাইল ড্রপ করুন। আউটপুট পরিষ্কার.txt হিসেবে ডাউনলোড হয়।

URL এনকোডিং আসলে কীভাবে কাজ করে

তিনটি নেটিভ ব্রাউজার API, তিনটি মোড, সবগুলোই আপনি যে পেজটি পড়ছেন তার ভেতরে চলছে।

  1. 1

    আপনি এডিটরে টাইপ করেন

    প্রতিটি কীস্ট্রোকে ইনপুট স্ট্রিং একটি ছোট JavaScript ফাংশনে পাঠানো হয়। কোনো debounce নেই, কোনো API কল নেই, কোনো fetch নেই — ফাংশনটি আপনার ব্রাউজার ট্যাবে synchronously চলে।

  2. 2

    মোড বেছে নিন

    Component encodeURIComponent কল করে — A-Z a-z 0-9 - _. ~ ছাড়া বাকি সবকিছু এস্কেপ করে। URI encodeURI কল করে — :/?#=& বজায় রাখে যাতে একটি পুরো URL বৈধ থাকে। Form encodeURIComponent ব্যবহার করে এবং application/x-www-form-urlencoded অনুযায়ী স্পেসকে + দিয়ে প্রতিস্থাপন করে।

  3. 3

    UTF-8 এমনিতেই হয়ে যায়

    encodeURIComponent এবং encodeURI উভয়ই অভ্যন্তরীণভাবে স্ট্রিংটিকে UTF-8 বাইটে রূপান্তর করে এবং তারপর প্রতিটি অনিরাপদ বাইটকে percent-encode করে। মানে চীনা 中-এর জন্য %E4%B8%AD — ঠিক যা RFC 3986 প্রয়োজন।

  4. 4

    আউটপুট লাইভ দেখা যায়

    ফলাফলটি read-only আউটপুটের মান হিসেবে সেট করা হয়। navigator.clipboard.writeText-এর মাধ্যমে ক্লিপবোর্ডে রাখতে Copy ক্লিক করুন, অথবা Blob URL-এর মাধ্যমে .txt হিসেবে সংরক্ষণ করতে Download ক্লিক করুন — দুটোই আপনার ব্রাউজারের মধ্যেই থাকে।

সাধারণ ব্যবহারের ক্ষেত্র

বাস্তব পরিস্থিতি যেখানে সঠিক এনকোডিং মোড বাগ প্রতিরোধ করে।

কোয়েরি-স্ট্রিং মান তৈরি করা

?q=...-এ আপনি যে কোনো ইউজার ইনপুট রাখেন সেটি অবশ্যই Component মোড দিয়ে এনকোড করতে হবে। URI মোড = এবং & raw রেখে দিতো, এবং মানের মধ্যে এগুলো থাকলে আপনার URL ভেঙে যেতো।

চ্যাটে একটি লম্বা URL শেয়ার করা

কিছু চ্যাট অ্যাপ এবং PDF লিঙ্কের মধ্যে raw স্পেস বা non-ASCII অক্ষর থাকলে সেগুলো নষ্ট করে ফেলে। সব জায়গায় কপি-পেস্ট-সেফ করতে URL-টি URI মোডের মধ্য দিয়ে চালান।

৪০০ রিটার্ন করা একটি ব্যাকএন্ড ডিবাগ করা

যখন আপনার API একটি রিকোয়েস্ট প্রত্যাখ্যান করে, তখন সার্ভার আসলে কী দেখেছে তা দেখতে URL-টি Decode মোডে পেস্ট করুন। ডাবল-এনকোডেড মান (যেখানে % নিজেই %25 হিসেবে এনকোড করা হয়েছিল) সাথে সাথে চোখে পড়ে।

Form ডেটা রাউন্ড-ট্রিপ

application/x-www-form-urlencoded-এ POST body ডিবাগ করার সময়, "+ as space" টগল চালু রেখে ডিকোড করুন। এটিই ব্রাউজারের প্রচলিত নিয়ম, এবং এটি ভুলে যাওয়াই "আমার username-এ প্লাস চিহ্ন কেন আসছে" বাগের ১ নম্বর কারণ।

লোকাল এনকোডিং কেন গুরুত্বপূর্ণ

আপনি যে URL এনকোড করেন সেগুলোতে প্রায়ই থাকে আসল কাস্টমার ইমেইল, ID, বা session token — ঠিক সেই ধরনের ডেটা যা আপনি অপরিচিত কারো সার্ভার টুলে পেস্ট করতে চাইবেন না। iKit URL এনকোডার আপনার ব্রাউজারে আগে থেকেই লোড হওয়া JavaScript হিসেবে চলে, তাই ইনপুট কখনোই আপনার ট্যাব ছাড়ে না।

  • এনকোড বা ডিকোডের সময় কোনো fetch, XHR, বা beacon নেই।
  • পেজটি একবার লোড হলে অফলাইনেও কাজ করে।
  • কোনো লগ নেই, কোনো রেট লিমিট নেই, কোনো সাইনআপ নেই, দৈনিক কোনো কোটা নেই।

সম্পর্কিত গাইড

iKit ব্লগ থেকে গভীর টিউটোরিয়াল এবং টুল তুলনা।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

Component, URI, এবং Form মোডের মধ্যে পার্থক্য কী?

Component (encodeURIComponent) unreserved নয় এমন প্রতিটি ক্যারেক্টারকে এস্কেপ করে — কোয়েরি-স্ট্রিং মান, path segment, বা যেকোনো একটি ফিল্ডের জন্য সবচেয়ে নিরাপদ। URI (encodeURI) URL স্ট্রাকচারের ক্যারেক্টারগুলো (:/?#=&) বজায় রাখে — পুরো একটি URL-এর জন্য এটি ব্যবহার করুন। Form (application/x-www-form-urlencoded) হলো Component + স্পেস '+' হয়ে যায় — যা HTML form ব্যবহার করে।

কিছু ক্যারেক্টার কেন এনকোড হয় না?

RFC 3986 এমন কিছু "unreserved" ক্যারেক্টার নির্ধারণ করে যেগুলো এনকোড করার দরকার নেই: A-Z a-z 0-9 - _. ~। বাকি সবকিছু percent-encode হয়। encodeURIComponent অতিরিক্তভাবে :/?#&= এনকোড করে যেগুলো encodeURI স্পর্শ করে না। কোয়েরি মান বনাম পুরো URL এনকোড করার সময় এই পার্থক্যটি গুরুত্বপূর্ণ।

আমার ডিকোড করা টেক্সট ভুল দেখাচ্ছে কেন?

তিনটি সাধারণ কারণ: (১) মূল টেক্সটটি Form-encoded ছিল, তাই '+' কে স্পেস হিসেবে ধরা উচিত — অপশনটি টগল করুন। (২) ডাবল-এনকোডেড — ইনপুটটি দুইবার এনকোড করা হয়েছিল; আবার ডিকোড করুন। (৩) অবৈধ percent সিকোয়েন্স — একটি বিচ্ছিন্ন % যার পর দুটি hex digit নেই। সঠিক বাইট পজিশনের জন্য error message দেখুন।

এনকোড করা URL কি ঠিক JavaScript-এর encodeURIComponent-এর মতোই?

Component মোডের জন্য হ্যাঁ — আমরা সরাসরি encodeURIComponent কল করি। Form মোড RFC 3986 + WHATWG অনুযায়ী স্ট্যান্ডার্ড form-encoding টুইক যোগ করে (! ' * হয়ে যায় %21 %27 %28 %29 %2A)। URI মোড encodeURI কল করে, যেটিকে বেশিরভাগ ভাষায় 'percent-encode a URL' বলে বোঝানো হয়।

আমার URL কি কোথাও আপলোড হয়?

না। পুরো টুলটিই এই পেজের ভেতরের JavaScript — এনকোডিং ও ডিকোডিং আপনার ব্রাউজারেই হয়। আপনি DevTools → Network খুলে দেখে যাচাই করতে পারেন: এনকোড বা ডিকোডের সময় কোনো রিকোয়েস্ট পাঠানো হয় না।