URL এনকোডিং ও ডিকোডিং

বিশেষ অক্ষর ও নন-ASCII টেক্সট নিরাপদে পরিচালনা করার জন্য URL স্ট্রিং এনকোড ও ডিকোড করুন, কোয়েরি প্যারামিটার ও পাথ ট্রান্সমিশনের জন্য আদর্শ।

এনকোড

এনকোডিং মোড

ডিকোড

কীভাবে ব্যবহার করবেন

URL এনকোডিং URL-এ নিরাপদ ট্রান্সমিশনের জন্য বিশেষ বা নন-ASCII অক্ষরকে %XX ফরম্যাটে রূপান্তর করে।
টেক্সটকে URL-নিরাপদ ফরম্যাটে রূপান্তর করতে 'এনকোড' ব্যবহার করুন (উদাহরণ: কোয়েরি প্যারামিটারের জন্য)।
%XX সিকোয়েন্সকে তাদের মূল অক্ষরে পুনরুদ্ধার করতে 'ডিকোড' ব্যবহার করুন।
সাধারণ ক্ষেত্রসমূহ: কোয়েরি প্যারামিটার পরিচালনা, ফর্ম ডেটা ট্রান্সমিশন, API কল ইত্যাদি।

দ্রুত উদাহরণ

মূল টেক্সট
https://example.com/search?q=你好世界&type=text
URL এনকোডেড
https://example.com/search?q=%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C&type=text

বৈশিষ্ট্য

  • দুইটি এনকোডিং মোড: encodeURIComponent এবং encodeURI
  • নমনীয় স্পেস হ্যান্ডলিং: + বা %20 হিসেবে এনকোড করা হয়
  • ইনপুট/আউটপুট দৈর্ঘ্য পরিসংখ্যানসহ রিয়েল-টাইম রূপান্তর
  • কপি/ক্লিয়ার বাটন এবং দ্বিমুখী প্যানেলে পাঠানোর কার্যকারিতা
  • DaisyUI মাল্টি-থিমের মাধ্যমে সম্পূর্ণ আন্তর্জাতিকীকরণ সমর্থন

URL এনকোডিং কী?

URL এনকোডিং অক্ষরগুলোকে %XX শতাংশ-এনকোডেড সিকোয়েন্সে রূপান্তর করে যাতে URL-এ নিরাপদে প্রেরণ করা যায়।

encodeURIComponent পৃথক উপাদানের জন্য উপযুক্ত (উদাহরণস্বরূপ, কোনো একক ক্যোয়ারি প্যারামিটারের মান) এবং বেশিরভাগ অ-অক্ষরসংখ্যাসূচক অক্ষরকে এনকোড করে।

encodeURI সম্পূর্ণ URI স্ট্রিংয়ের জন্য ডিজাইন করা হয়েছে এবং কাঠামোগত অর্থবহ সংরক্ষিত অক্ষর (যেমন ?, &, = এবং /) সংরক্ষণ করে।

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

  • ক্যোয়ারি প্যারামিটার নির্মাণ (উদাহরণস্বরূপ, অনুসন্ধানের কীওয়ার্ড, ফিল্টারের শর্ত)
  • GET/POST এর মাধ্যমে ফর্ম ডেটা এনকোড এবং প্রেরণ করা
  • API রিকোয়েস্ট প্যারামিটার এনকোড করা
  • URL পাথ সেগমেন্টে নিরাপদে ব্যবহারকারীর ইনপুট সন্নিবেশ করা

FAQs ও জাল

  • encodeURI বনাম encodeURIComponent: পৃথক অংশের জন্য কম্পোনেন্ট এনকোডিং ব্যবহার করুন, এবং সম্পূর্ণ URL এর জন্য URI এনকোডিং ব্যবহার করুন
  • স্পেস এবং +: application/x-www-form-urlencoded-এ, ক্যোয়ারি স্ট্রিংয়ে স্পেসকে সাধারণত + হিসেবে প্রদর্শন করা হয়
  • ডবল ডিকোডিং এড়িয়ে চলুন: বারবার ডিকোডিং ডেটা নষ্ট করতে পারে
  • অবৈধ শতাংশ সিকোয়েন্স ত্রুটি সৃষ্টি করে; ব্যতিক্রমগুলো সুন্দরভাবে হ্যান্ডল করুন

প্রোগ্রামিং ভাষায় URL এনকোডিং/ডিকোডিং কীভাবে করবেন

JavaScript
এনকোড
// Component (recommended for query values)
const encoded = encodeURIComponent(text);
// If you need '+' for spaces in query strings
const encodedPlus = encoded.replace(/%20/g, '+');
// Full URI
const encodedUri = encodeURI(url);
ডিকোড
// Treat '+' as space if needed
const input = plusAsSpace ? s.replace(/\+/g, ' ') : s;
// Component
const dec1 = decodeURIComponent(input);
// Fallback to decodeURI when input is a full URL
const dec2 = decodeURI(input);
PHP
এনকোড
// Component (RFC 3986)
$encoded = rawurlencode($text);
// '+' for spaces (application/x-www-form-urlencoded)
$encodedPlus = str_replace('%20', '+', $encoded);
// Full query usage
$query = http_build_query(['q' => '你好 世界', 'type' => 'text']);
ডিকোড
// Component
$decoded = rawurldecode($s);
// If input uses '+' for spaces
$decodedPlus = urldecode($s);
Python
এনকোড
from urllib.parse import quote, quote_plus

# Component (RFC 3986)
enc = quote(text, safe='')
# '+' for spaces (application/x-www-form-urlencoded)
enc_plus = quote_plus(text)
ডিকোড
from urllib.parse import unquote, unquote_plus

# Component
dec = unquote(s)
# Input with '+' for spaces
dec_plus = unquote_plus(s)
Go
এনকোড
import (
    "net/url"
)

// Query component
enc := url.QueryEscape(text) // spaces => +
// Path segment
// go1.8+
// url.PathEscape(text)
ডিকোড
import (
    "net/url"
)

// Query component
dec, _ := url.QueryUnescape(s)
// Path segment
// url.PathUnescape(s)
Rust
এনকোড
// Cargo.toml: urlencoding = "^2"
use urlencoding::{encode, encode_binary};

let enc = encode(text);              // component; spaces => %20
let enc_plus = enc.replace("%20", "+"); // if you need '+' for spaces
ডিকোড
use urlencoding::decode;

// decode treats '+' as space
let dec = decode(s)?; // Result, _>
Java
এনকোড
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

// Query param / form style (spaces => '+')
String enc = URLEncoder.encode(text, StandardCharsets.UTF_8);
// For RFC3986-like component encoding, replace '+' with %20 if needed
String encSpace = enc.replace("+", "%20");
ডিকোড
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

// URLDecoder treats '+' as space
String dec = URLDecoder.decode(s, StandardCharsets.UTF_8);