ইউআরএল স্ট্রিং এসকেপার: বিশেষ অক্ষর এনকোডিং টুল
একটি অনলাইন টুল যা ইউআরএল স্ট্রিংয়ে বিশেষ অক্ষরগুলি এসকেপ করে। একটি ইউআরএল প্রবেশ করান, এবং এই টুলটি বিশেষ অক্ষরগুলি এসকেপ করে এটি এনকোড করবে, নিশ্চিত করে যে এটি ওয়েব অ্যাপ্লিকেশনগুলিতে ব্যবহারের জন্য নিরাপদ।
ইউআরএল স্ট্রিং এস্কেপার
ডকুমেন্টেশন
URL স্ট্রিং এস্কেপার টুল
পরিচিতি
ওয়েব ডেভেলপমেন্ট এবং ইন্টারনেট যোগাযোগের ক্ষেত্রে, URL (ইউনিফর্ম রিসোর্স লোকেটর) ওয়েবে সম্পদের সনাক্তকরণের জন্য একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। তবে, URL-এ যে অক্ষরগুলি থাকতে পারে তার উপর বিধিনিষেধ রয়েছে। কিছু অক্ষরের বিশেষ অর্থ রয়েছে, যখন অন্যগুলি URL-এ ব্যবহারের জন্য অরক্ষিত, কারণ এগুলি প্রেরণের সময় ভুল ব্যাখ্যা বা ক্ষতির সম্ভাবনা তৈরি করে।
URL এনকোডিং, যা শতাংশ-এনকোডিং নামেও পরিচিত, বিশেষ অক্ষরগুলিকে এমন একটি ফরম্যাটে রূপান্তর করার একটি প্রক্রিয়া যা ইন্টারনেটের মাধ্যমে প্রেরণ করা যেতে পারে। এই টুলটি আপনাকে একটি URL স্ট্রিং ইনপুট করতে এবং বিশেষ অক্ষরগুলি এস্কেপ করতে দেয়, নিশ্চিত করে যে URL বৈধ এবং ওয়েব ব্রাউজার এবং সার্ভার দ্বারা সঠিকভাবে ব্যাখ্যা করা যেতে পারে।
URL এনকোডিং বোঝা
URL এনকোডিং কী?
URL এনকোডিং নিরাপদ ASCII অক্ষরগুলিকে %
দ্বারা প্রতিস্থাপন করে এবং তারপরে অক্ষরের ASCII কোডের দুটি হেক্সাডেসিমাল ডিজিট যুক্ত করে। এটি নিশ্চিত করে যে তথ্য ইন্টারনেটের মাধ্যমে পরিবর্তন ছাড়াই প্রেরিত হয়।
যেমন, স্পেস অক্ষর ' '
কে %20
দ্বারা প্রতিস্থাপন করা হয়।
URL এনকোডিং কেন প্রয়োজন?
URL গুলি শুধুমাত্র ASCII অক্ষর সেট ব্যবহার করে ইন্টারনেটে প্রেরণ করা যেতে পারে। যেহেতু URL-এ প্রায়ই এই সেটের বাইরের অক্ষরগুলি থাকে, সেগুলিকে বৈধ ASCII ফরম্যাটে রূপান্তর করতে হবে। URL এনকোডিং নিশ্চিত করে যে বিশেষ অক্ষরগুলি অনিচ্ছাকৃত প্রভাব বা ত্রুটি সৃষ্টি করে না।
এনকোডিংয়ের প্রয়োজনীয় অক্ষর
RFC 3986 স্পেসিফিকেশন অনুসারে, নিম্নলিখিত অক্ষরগুলি URL-এ রিজার্ভ করা হয়েছে এবং যদি সেগুলি আক্ষরিকভাবে ব্যবহৃত হয় তবে শতাংশ-এনকোড করা আবশ্যক:
- সাধারণ ডেলিমিটার:
:
,/
,?
,#
,[
,]
,@
- সাব-ডেলিমিটার:
!
,$
,&
,'
,(
,)
,*
,+
,,
,;
,=
এছাড়াও, যেকোনো অ-ASCII অক্ষর, যার মধ্যে ইউনিকোডের অক্ষরগুলি অন্তর্ভুক্ত, এনকোড করা আবশ্যক।
URL এনকোডিং কীভাবে কাজ করে?
এনকোডিং প্রক্রিয়া
-
বিশেষ অক্ষর চিহ্নিত করুন: URL স্ট্রিংটি পার্স করুন এবং সেসব অক্ষর চিহ্নিত করুন যা অ-সংরক্ষিত ASCII অক্ষর নয় (অক্ষর, সংখ্যা,
-
,.
,_
,~
)। -
ASCII কোডে রূপান্তর করুন: প্রতিটি বিশেষ অক্ষরের জন্য, এর ASCII বা ইউনিকোড কোড পয়েন্ট পান।
-
UTF-8 বাইট সিকোয়েন্সে রূপান্তর করুন (যদি প্রয়োজন হয়): অ-ASCII অক্ষরের জন্য, একটি বা একাধিক বাইটে অক্ষরটি UTF-8 এনকোডিং ব্যবহার করে এনকোড করুন।
-
হেক্সাডেসিমালে রূপান্তর করুন: প্রতিটি বাইটকে এর দুটি ডিজিটের হেক্সাডেসিমাল সমতুল্যে রূপান্তর করুন।
-
শতাংশ চিহ্নের সাথে প্রিফিক্স করুন: প্রতিটি হেক্সাডেসিমাল বাইটের আগে একটি
%
চিহ্ন যুক্ত করুন।
উদাহরণ এনকোডিং
-
অক্ষর:
' '
(স্পেস)- ASCII কোড:
32
- হেক্সাডেসিমাল:
20
- URL এনকোডেড:
%20
- ASCII কোড:
-
অক্ষর:
'é'
- UTF-8 এনকোডিং:
0xC3 0xA9
- URL এনকোডেড:
%C3%A9
- UTF-8 এনকোডিং:
বিবেচনা করার জন্য প্রান্তিক কেস
-
ইউনিকোড অক্ষর: অ-ASCII অক্ষরগুলিকে UTF-8-এ এনকোড করতে হবে এবং তারপর শতাংশ-এনকোড করতে হবে।
-
ইতিমধ্যে এনকোড করা শতাংশ চিহ্ন: শতাংশ চিহ্নগুলি যা শতাংশ-এনকোডিংয়ের অংশ, সেগুলি পুনরায় এনকোড করা উচিত নয়।
-
কোয়েরি স্ট্রিংয়ে রিজার্ভড অক্ষর: কিছু অক্ষরের বিশেষ অর্থ রয়েছে কোয়েরি স্ট্রিংয়ে এবং কাঠামো পরিবর্তন প্রতিরোধ করতে এনকোড করা উচিত।
URL ডিকোডিং
URL ডিকোডিং কী?
URL ডিকোডিং URL এনকোডিংয়ের বিপরীত প্রক্রিয়া। এটি শতাংশ-এনকোডেড অক্ষরগুলিকে তাদের মূল রূপে রূপান্তর করে, URL-কে মানব এবং সিস্টেম দ্বারা পড়ার যোগ্য করে তোলে।
ডিকোডিং প্রক্রিয়া
-
শতাংশ-এনকোডিং সিকোয়েন্স চিহ্নিত করুন: URL স্ট্রিংয়ে সমস্ত
%
চিহ্ন চিহ্নিত করুন যা দুটি হেক্সাডেসিমাল ডিজিটের পরে রয়েছে। -
হেক্সাডেসিমাল থেকে বাইটে রূপান্তর করুন: প্রতিটি হেক্সাডেসিমাল মানকে এর সমতুল্য বাইটে রূপান্তর করুন।
-
UTF-8 বাইটগুলি ডিকোড করুন (যদি প্রয়োজন হয়): মাল্টি-বাইট সিকোয়েন্সগুলির জন্য, বাইটগুলি একত্রিত করুন এবং মূল অক্ষরটি পেতে UTF-8 এনকোডিং ব্যবহার করে ডিকোড করুন।
-
এনকোডেড সিকোয়েন্সগুলি প্রতিস্থাপন করুন: শতাংশ-এনকোডেড সিকোয়েন্সগুলি ডিকোড করা অক্ষরগুলির সাথে প্রতিস্থাপন করুন।
উদাহরণ ডিকোডিং
-
এনকোডেড:
hello%20world
%20
একটি স্পেস' '
এ রূপান্তরিত হয়- ডিকোডেড:
hello world
-
এনকোডেড:
J%C3%BCrgen
%C3%A4
UTF-8-এ'ü'
এ রূপান্তরিত হয়- ডিকোডেড:
Jürgen
URL ডিকোডিংয়ের গুরুত্ব
URL ডিকোডিং ব্যবহারকারীর ইনপুট প্রসেস করার সময়, কোয়েরি প্যারামিটারগুলি পড়ার সময়, বা ওয়েব অনুরোধ থেকে প্রাপ্ত ডেটা ব্যাখ্যা করার সময় অপরিহার্য। এটি নিশ্চিত করে যে URL থেকে সংগৃহীত তথ্য তার সঠিক, উদ্দেশ্যযুক্ত রূপে রয়েছে।
ব্যবহার কেস
ওয়েব ডেভেলপমেন্ট
-
কোয়েরি প্যারামিটার: ত্রুটি বা নিরাপত্তা দুর্বলতা প্রতিরোধ করতে কোয়েরি প্যারামিটারে ব্যবহারকারীর ইনপুট এনকোড করা।
-
পথ প্যারামিটার: URL পাথে গতিশীল ডেটা নিরাপদে অন্তর্ভুক্ত করা।
ডেটা প্রেরণ
-
এপিআই এবং ওয়েব পরিষেবাগুলি: নিশ্চিত করা যে এপিআইতে পাঠানো ডেটা সঠিকভাবে ফরম্যাট করা হয়েছে।
-
আন্তর্জাতিককরণ: বিভিন্ন ভাষার অক্ষরগুলি সহ URL সমর্থন করা।
নিরাপত্তা
- ইনজেকশন আক্রমণ প্রতিরোধ: ইনপুটগুলি এনকোড করা যাতে ক্রস-সাইট স্ক্রিপ্টিং (XSS) এবং অন্যান্য ইনজেকশন আক্রমণের ঝুঁকি কমানো যায়।
বিকল্পগুলি
যদিও URL এনকোডিং অপরিহার্য, কিছু পরিস্থিতিতে অন্যান্য এনকোডিং পদ্ধতি আরও উপযুক্ত হতে পারে:
-
বেস64 এনকোডিং: URL-এর মধ্যে বাইনারি ডেটা এনকোড করার জন্য বা যখন উচ্চতর তথ্য ঘনত্ব প্রয়োজন।
-
শতাংশ-এনকোডিং ছাড়া UTF-8 এনকোডিং: কিছু সিস্টেম সরাসরি UTF-8 এনকোডিং ব্যবহার করে, তবে এটি সঠিকভাবে পরিচালনা না করলে সমস্যা সৃষ্টি করতে পারে।
আপনার অ্যাপ্লিকেশনের নির্দিষ্ট বিষয়গুলি বিবেচনা করুন যাতে সবচেয়ে উপযুক্ত এনকোডিং পদ্ধতি নির্বাচন করা যায়।
ইতিহাস
URL এনকোডিং 1990-এর দশকে URL এবং URI (ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার) মানগুলির প্রথম স্পেসিফিকেশনগুলির সাথে পরিচিত হয়। বিশেষ অক্ষরগুলি এনকোড করার একটি সঙ্গতিপূর্ণ উপায়ের প্রয়োজনীয়তা বিশ্বব্যাপী ব্যবহৃত বিভিন্ন সিস্টেম এবং অক্ষর সেট থেকে উদ্ভূত হয়।
মূল মাইলফলকগুলি অন্তর্ভুক্ত:
-
RFC 1738 (1994): URL সংজ্ঞায়িত করেছে এবং শতাংশ-এনকোডিং প্রবর্তন করেছে।
-
RFC 3986 (2005): URI সিনট্যাক্স আপডেট করেছে, এনকোডিংয়ের নিয়মগুলি পরিশীলিত করেছে।
সময়ের সাথে সাথে, URL এনকোডিং ওয়েব প্রযুক্তির একটি অবিচ্ছেদ্য অংশ হয়ে উঠেছে, বিভিন্ন সিস্টেম এবং প্ল্যাটফর্মের মধ্যে নির্ভরযোগ্য যোগাযোগ নিশ্চিত করে।
কোড উদাহরণ
নিচে বিভিন্ন প্রোগ্রামিং ভাষায় URL এনকোডিং করার উদাহরণ রয়েছে:
1' Excel VBA উদাহরণ
2Function URLEncode(ByVal Text As String) As String
3 Dim i As Integer
4 Dim CharCode As Integer
5 Dim Char As String
6 Dim EncodedText As String
7
8 For i = 1 To Len(Text)
9 Char = Mid(Text, i, 1)
10 CharCode = AscW(Char)
11 Select Case CharCode
12 Case 48 To 57, 65 To 90, 97 To 122, 45, 46, 95, 126 ' 0-9, A-Z, a-z, -, ., _, ~
13 EncodedText = EncodedText & Char
14 Case Else
15 If CharCode < 0 Then
16 ' ইউনিকোড অক্ষরগুলি পরিচালনা করুন
17 EncodedText = EncodedText & "%" & Hex(65536 + CharCode)
18 Else
19 EncodedText = EncodedText & "%" & Right("0" & Hex(CharCode), 2)
20 End If
21 End Select
22 Next i
23 URLEncode = EncodedText
24End Function
25
26' ব্যবহার:
27' =URLEncode("https://example.com/?name=Jürgen")
28
1% MATLAB উদাহরণ
2function encodedURL = urlEncode(url)
3 import java.net.URLEncoder
4 encodedURL = char(URLEncoder.encode(url, 'UTF-8'));
5end
6
7% ব্যবহার:
8% encodedURL = urlEncode('https://example.com/?name=Jürgen');
9
1## Ruby উদাহরণ
2require 'uri'
3
4url = 'https://example.com/path?query=hello world&name=Jürgen'
5encoded_url = URI::DEFAULT_PARSER.escape(url)
6puts encoded_url
7## আউটপুট: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
8
1// Rust উদাহরণ
2use url::form_urlencoded;
3
4fn main() {
5 let url = "https://example.com/path?query=hello world&name=Jürgen";
6 let encoded_url = percent_encode(url);
7 println!("{}", encoded_url);
8 // আউটপুট: https://example.com/path%3Fquery%3Dhello%20world%26name%3DJ%C3%BCrgen
9}
10
11fn percent_encode(input: &str) -> String {
12 use percent_encoding::{utf8_percent_encode, NON_ALPHANUMERIC};
13 utf8_percent_encode(input, NON_ALPHANUMERIC).to_string()
14}
15
1## Python উদাহরণ
2import urllib.parse
3
4url = 'https://example.com/path?query=hello world&name=Jürgen'
5encoded_url = urllib.parse.quote(url, safe=':/?&=')
6print(encoded_url)
7## আউটপুট: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
8
1// JavaScript উদাহরণ
2const url = 'https://example.com/path?query=hello world&name=Jürgen';
3const encodedURL = encodeURI(url);
4console.log(encodedURL);
5// আউটপুট: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
6
1// Java উদাহরণ
2import java.net.URLEncoder;
3import java.nio.charset.StandardCharsets;
4
5public class URLEncodeExample {
6 public static void main(String[] args) throws Exception {
7 String url = "https://example.com/path?query=hello world&name=Jürgen";
8 String encodedURL = URLEncoder.encode(url, StandardCharsets.UTF_8.toString());
9 // স্পেসের জন্য "+" কে "%20" দ্বারা প্রতিস্থাপন করুন
10 encodedURL = encodedURL.replace("+", "%20");
11 System.out.println(encodedURL);
12 // আউটপুট: https%3A%2F%2Fexample.com%2Fpath%3Fquery%3Dhello%20world%26name%3DJ%C3%BCrgen
13 }
14}
15
1// C# উদাহরণ
2using System;
3using System.Net;
4
5class Program
6{
7 static void Main()
8 {
9 string url = "https://example.com/path?query=hello world&name=Jürgen";
10 string encodedURL = Uri.EscapeUriString(url);
11 Console.WriteLine(encodedURL);
12 // আউটপুট: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
13 }
14}
15
1<?php
2// PHP উদাহরণ
3$url = 'https://example.com/path?query=hello world&name=Jürgen';
4$encodedURL = urlencode($url);
5echo $encodedURL;
6// আউটপুট: https%3A%2F%2Fexample.com%2Fpath%3Fquery%3Dhello+world%26name%3DJ%C3%BCrgen
7?>
8
1// Go উদাহরণ
2package main
3
4import (
5 "fmt"
6 "net/url"
7)
8
9func main() {
10 urlStr := "https://example.com/path?query=hello world&name=Jürgen"
11 encodedURL := url.QueryEscape(urlStr)
12 fmt.Println(encodedURL)
13 // আউটপুট: https%3A%2F%2Fexample.com%2Fpath%3Fquery%3Dhello+world%26name%3DJ%25C3%25BCrgen
14}
15
1// Swift উদাহরণ
2import Foundation
3
4let url = "https://example.com/path?query=hello world&name=Jürgen"
5if let encodedURL = url.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) {
6 print(encodedURL)
7 // আউটপুট: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
8}
9
1## R উদাহরণ
2url <- "https://example.com/path?query=hello world&name=Jürgen"
3encodedURL <- URLencode(url, reserved = TRUE)
4print(encodedURL)
5## আউটপুট: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
6
নোট: আউটপুট প্রতিটি ভাষা কীভাবে রিজার্ভড অক্ষর এবং স্পেসগুলি পরিচালনা করে তার উপর ভিত্তি করে কিছুটা ভিন্ন হতে পারে (যেমন, স্পেসগুলি %20
বা +
হিসাবে এনকোড করা)।
URL এনকোডিং প্রক্রিয়ার SVG চিত্র
নিরাপত্তা বিবেচনা
সঠিক URL এনকোডিং এবং ডিকোডিং নিরাপত্তার জন্য অত্যন্ত গুরুত্বপূর্ণ:
-
ইনজেকশন আক্রমণ প্রতিরোধ: ব্যবহারকারীর ইনপুট এনকোড করা ম্যালিশিয়াস কোডের কার্যকরী হওয়া প্রতিরোধ করতে সাহায্য করে, যেমন ক্রস-সাইট স্ক্রিপ্টিং (XSS) এবং SQL ইনজেকশন।
-
ডেটার অখণ্ডতা: নিশ্চিত করে যে ডেটা পরিবর্তন বা ক্ষতির ছাড়াই প্রেরিত হয়।
-
মানদণ্ডের সাথে সম্মতি: এনকোডিং মানদণ্ড মেনে চলা সিস্টেমগুলির মধ্যে আন্তঃক্রিয়াশীলতার সমস্যা এড়ায়।
রেফারেন্স
- RFC 3986 - ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI): https://tools.ietf.org/html/rfc3986
- URL এনকোডিং কী এবং এটি কীভাবে কাজ করে? https://www.urlencoder.io/learn/
- শতাংশ-এনকোডিং: https://en.wikipedia.org/wiki/Percent-encoding
- URL মানদণ্ড: https://url.spec.whatwg.org/
- URI.escape অব্যবহৃত: https://stackoverflow.com/questions/2824126/why-is-uri-escape-deprecated
উপসংহার
URL এনকোডিং ওয়েব ডেভেলপমেন্ট এবং ইন্টারনেট যোগাযোগের একটি অপরিহার্য দিক। বিশেষ অক্ষরগুলিকে নিরাপদ ফরম্যাটে রূপান্তর করে, এটি নিশ্চিত করে যে URL-গুলি ব্রাউজার এবং সার্ভার দ্বারা সঠিকভাবে ব্যাখ্যা করা হয়, ডেটা প্রেরণের অখণ্ডতা এবং নিরাপত্তা বজায় রাখে। এই টুলটি আপনার URL-এ বিশেষ অক্ষরগুলি এস্কেপ করার একটি সুবিধাজনক উপায় প্রদান করে, সামঞ্জস্যতা বাড়ায় এবং সম্ভাব্য ত্রুটি বা নিরাপত্তা দুর্বলতা প্রতিরোধ করে।
প্রতিক্রিয়া
এই সরঞ্জাম সম্পর্কে প্রতিক্রিয়া দেতে শুরু করতে ফিডব্যাক টোস্ট ক্লিক করুন।