Giải mã URL Trực tuyến

Giải mã URL được mã hóa phần trăm

Thử ví dụ

URL / Văn bản đã mã hóa

Đã giải mã

Chạy cục bộ · An toàn để dán thông tin bí mật
Đầu ra đã giải mã...

Giải mã URL là gì?

Giải mã URL (giải mã phần trăm) là quá trình ngược lại của mã hóa URL: chuyển đổi các chuỗi mã hóa phần trăm trở lại thành các ký tự gốc của chúng. Mỗi lần xuất hiện dấu phần trăm theo sau hai chữ số thập lục phân (%XX) được thay thế bằng byte mà XX biểu diễn. Nhiều byte được mã hóa liên tiếp được kết hợp lại để tái tạo ký tự UTF-8 gốc.

Giải mã URL là nhiệm vụ hàng ngày của các lập trình viên làm việc với API, web scraping, phân tích log và các luồng xác thực. URL được mã hóa có thể đọc được bởi máy nhưng mờ đục với con người — giải mã chúng ngay lập tức tiết lộ các đường dẫn thực tế, truy vấn tìm kiếm, đích chuyển hướng và giá trị tham số mà nếu không sẽ cần chuyển đổi tâm thần từ hex sang ký tự.

Tại sao sử dụng công cụ này?

Nhanh chóng hiểu bất kỳ URL hoặc chuỗi truy vấn nào được mã hóa phần trăm — không cần console trình duyệt, không có gì được gửi đến máy chủ.

Giải mã tức thì
Dán bất kỳ URL hoặc tham số được mã hóa nào và xem ngay phiên bản có thể đọc được. Tuyệt vời để gỡ lỗi yêu cầu API và file log.
🛡️
Khôi phục lỗi
Dự phòng sang legacy unescape() cho các đầu vào chứa ký tự Latin-1 được mã hóa phần trăm kiểu cũ mà sẽ thất bại với decodeURIComponent.
🔒
Chỉ phía máy khách
Tất cả giải mã chạy cục bộ trong trình duyệt của bạn. Token, mật khẩu và tham số truy vấn riêng tư không bao giờ rời khỏi thiết bị của bạn.
🔁
Hỗ trợ URL đầy đủ
Giải mã URL đầy đủ hoặc giá trị tham số riêng lẻ. Công cụ xử lý cả dấu cách %20 tiêu chuẩn và giữ nguyên dấu + như ký tự cộng thực.

Cách sử dụng công cụ giải mã URL trực tuyến này

Không cần tài khoản, không cần cài đặt. Dán chuỗi mã hóa phần trăm vào trường nhập liệu và kết quả giải mã xuất hiện ngay lập tức. Mọi thứ chạy trong trình duyệt của bạn — dữ liệu của bạn không bao giờ rời khỏi thiết bị.

  1. 1
    Dán URL đã mã hóa hoặc chuỗi của bạn
    Sao chép bất kỳ chuỗi mã hóa phần trăm nào — URL từ thanh địa chỉ trình duyệt, tham số truy vấn từ server log, phản hồi API hoặc đích redirect — và dán vào trường nhập liệu.
  2. 2
    Tự động phát hiện định dạng
    Bộ giải mã tự động xử lý cả mã hóa phần trăm %XX lẫn + làm dấu cách (application/x-www-form-urlencoded). Không cần chỉ định định dạng mã hóa thủ công.
  3. 3
    Kiểm tra kết quả đã giải mã
    Văn bản dễ đọc xuất hiện ngay lập tức. Nếu đầu vào chứa mã hóa lồng nhau (chuỗi được mã hóa hai lần), bộ giải mã xử lý từng lớp một. Lỗi xuất hiện với các chuỗi %XX không hợp lệ.
  4. 4
    Sao chép hoặc mã hóa lại
    Nhấp Sao chép để lấy chuỗi đã giải mã. Cần mã hóa lại với cài đặt khác? Chuyển sang công cụ Mã hóa URL bằng một cú nhấp.

Cách giải mã hoạt động

Bộ giải mã quét đầu vào để tìm các chuỗi %, chuyển đổi mỗi nhóm hai chữ số thập lục phân thành giá trị byte, nhóm các chuỗi byte liên tiếp lại và diễn giải chúng dưới dạng UTF-8 để tạo ra các ký tự Unicode cuối cùng.

Ví dụ
Đầu vào:https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world
%3A:  %2F/  %3F?  %3D=  %20space
Đầu ra:https://example.com/search?q=hello world

Tham chiếu ký tự mã hóa phần trăm

Tham chiếu nhanh cho các chuỗi mã hóa phần trăm thường gặp nhất:

Đã mã hóaKý tựBạn sẽ thấy ở đâu
%20spacepath segments, query values
%2B+literal plus (not a space in query)
%2F/slash inside a path component
%3F?literal question mark in a value
%23#literal hash in a value
%26&literal ampersand in a value
%3D=literal equals sign in a value
%40@at sign in username / password
%3A:colon inside a path segment
%25%literal percent sign
%2C,comma in path or query
%5B[opening bracket
%5D]closing bracket
%7B{curly brace in template literals
%7D}curly brace in template literals

Các trường hợp sử dụng phổ biến

Gỡ lỗi yêu cầu API
Sao chép URL từ log mạng của DevTools trình duyệt và giải mã để xem giá trị tham số truy vấn thực tế — đặc biệt hữu ích khi các công cụ hoặc thư viện tự động đã mã hóa phần trăm các tham số.
Đọc file log
Log truy cập máy chủ web và log ứng dụng lưu trữ URL ở dạng mã hóa. Giải mã để tìm các đường dẫn được yêu cầu thực tế, điều khoản tìm kiếm và giá trị tham số.
Kiểm tra chuyển hướng
Callback OAuth, chuyển hướng SSO và URL theo dõi liên kết thường mang các tham số redirect_uri hoặc next được mã hóa nhiều. Giải mã URL để theo dõi đích đến dự định.
Phân tích payload webhook
Nội dung webhook được gửi dưới dạng application/x-www-form-urlencoded (Stripe, Twilio, GitHub) đến dưới dạng chuỗi mã hóa phần trăm. Giải mã để đọc các giá trị trường thực tế.
Trích xuất truy vấn tìm kiếm
Các URL phân tích và tiêu đề referrer chứa truy vấn tìm kiếm gốc của người dùng được mã hóa phần trăm trong tham số q=. Giải mã để hiển thị hoặc phân tích các từ khóa tìm kiếm thực tế.
Kỹ thuật đảo ngược URL
Khi tích hợp với các API bên thứ ba hoặc scraping, các URL gặp phải thường chứa các phân đoạn đường dẫn và tham số được mã hóa. Giải mã chúng để hiểu cấu trúc URL và tái tạo yêu cầu.

Những cạm bẫy phổ biến

Đây là những lỗi thường xuyên nhất khi giải mã chuỗi mã hóa phần trăm:

Nhầm lẫn + với %20
Trong dữ liệu application/x-www-form-urlencoded (gửi form HTML), + biểu thị dấu cách. Nhưng trong đường dẫn URL thô hoặc giá trị được mã hóa bằng encodeURIComponent, + là dấu cộng thực. decodeURIComponent không chuyển đổi + thành dấu cách — dùng URLSearchParams hoặc unquote_plus cho dữ liệu form.
Chuỗi được mã hóa kép
Nếu chuỗi được mã hóa hai lần, giải mã một lần vẫn còn dấu phần trăm: %2520 giải mã thành %20, không phải dấu cách. Giải mã lần thứ hai để lấy giá trị gốc. Chú ý điều này trong log, proxy và middleware mã hóa lại dữ liệu đã mã hóa.
Chuỗi phần trăm bị lỗi định dạng
Dấu % đơn lẻ hoặc % theo sau là các ký tự không phải hex (ví dụ %GG hoặc % 2) không hợp lệ và sẽ ném URIError. Luôn xác thực đầu vào hoặc bọc giải mã trong try/catch.
Không khớp mã hóa (Latin-1 so với UTF-8)
Các hệ thống cũ (urlencode của PHP, ASP cổ điển) mã hóa ký tự dưới dạng byte Latin-1. Chuỗi được mã hóa dưới dạng Latin-1 có thể giải mã không đúng với bộ giải mã UTF-8. Nếu bạn thấy ký tự bị lỗi, thử đường dẫn legacy unescape() hoặc xác định mã hóa gốc.

Ví dụ code

Cách giải mã chuỗi URL trong các ngôn ngữ và môi trường phổ biến:

JavaScript (browser / Node.js)
// Decode a percent-encoded component
decodeURIComponent('hello%20world%20%26%20more') // → "hello world & more"

// Decode a full URL (leaves structure characters encoded)
decodeURI('https://example.com/path?q=hello%20world') // → "https://example.com/path?q=hello world"

// Parse a query string (handles + as space automatically)
const params = new URLSearchParams('q=hello+world&lang=en')
params.get('q') // → "hello world"
Python
from urllib.parse import unquote, unquote_plus, parse_qs

# Decode percent-encoded string
unquote('hello%20world%20%26%20more')   # → 'hello world & more'

# Decode form-encoded string (+ → space)
unquote_plus('hello+world%21')          # → 'hello world!'

# Parse full query string
parse_qs('q=hello%20world&lang=en')     # → {'q': ['hello world'], 'lang': ['en']}
Node.js (URL API)
const url = new URL('https://example.com/search?q=hello%20world%20%26%20more')
url.searchParams.get('q')  // → "hello world & more"
url.pathname               // → "/search"
CLI (bash)
# Decode with Python one-liner
python3 -c "from urllib.parse import unquote; print(unquote('hello%20world'))"

# Decode with Node.js
node -e "console.log(decodeURIComponent('hello%20world%20%26'))"

Bộ giải mã URL vs. các lựa chọn thay thế

Nhiều công cụ có thể giải mã chuỗi mã hóa phần trăm, nhưng chúng khác nhau về độ rõ ràng, quyền riêng tư và tiện lợi.

Công cụ này
Dựa trên trình duyệt, tức thì, riêng tư. Xử lý mã hóa %XX, + làm dấu cách, Unicode và các chuỗi không hợp lệ. Không có dữ liệu nào được gửi đến bất kỳ máy chủ nào.
Thanh địa chỉ trình duyệt
Trình duyệt giải mã URL để hiển thị nhưng không phải lúc nào cũng hoàn toàn — một số ký tự được mã hóa vẫn có thể thấy trên thanh địa chỉ. Không hữu ích để kiểm tra các giá trị tham số riêng lẻ.
DevTools / curl -v
DevTools trình duyệt và curl hiển thị URL thô và đã giải mã trong các yêu cầu mạng. Hữu ích để gỡ lỗi nhưng cần chuyển đổi công cụ và biết nơi cần tìm.

Câu hỏi thường gặp

Sự khác nhau giữa decodeURIComponent và decodeURI là gì?
decodeURIComponent giải mã tất cả các chuỗi mã hóa phần trăm bao gồm cả các ký tự dành riêng (%2F → /, %3F → ?, v.v.). decodeURI chỉ giải mã các chuỗi không tạo ra ký tự có ý nghĩa đặc biệt trong URL — nó để %2F, %3F, %23 và các ký tự cấu trúc khác được mã hóa. Dùng decodeURIComponent cho các giá trị tham số; dùng decodeURI chỉ khi bạn có URL đầy đủ và muốn bảo toàn cấu trúc của nó.
Tại sao tôi thấy URIError: malformed URI?
Lỗi này từ decodeURIComponent xảy ra khi đầu vào chứa % không theo sau là hai chữ số hex hợp lệ, hoặc khi chuỗi UTF-8 đa byte không đầy đủ (ví dụ %E2 không có %82%AC theo sau). Xóa hoặc escape các dấu phần trăm lẻ trước khi giải mã.
Giải mã có xử lý + như dấu cách không?
Không — decodeURIComponent xử lý + như dấu cộng thực, không phải dấu cách. Quy ước + → dấu cách chỉ áp dụng cho dữ liệu application/x-www-form-urlencoded (gửi form HTML). Để giải mã dữ liệu được mã hóa form, dùng URLSearchParams (trình duyệt/Node) hoặc urllib.parse.unquote_plus (Python).
Giải mã URL phía máy khách có an toàn không?
Có — giải mã URL là phép biến đổi thuần túy không có yêu cầu mạng. Tất cả các trình duyệt hiện đại bao gồm decodeURIComponent và decodeURI như các hàm gốc. Công cụ này thực hiện giải mã hoàn toàn trong trình duyệt của bạn; không có dữ liệu nào được gửi đi bất kỳ đâu.
Làm cách nào để giải mã URL được mã hóa nhiều lần?
Giải mã nhiều lần cho đến khi đầu ra ổn định (không còn chuỗi % nào được giải quyết nữa). Điều này xảy ra khi URL đã mã hóa được chuyển qua bộ mã hóa khác. Mỗi lượt giải mã xóa một lớp mã hóa.
%XX biểu diễn gì?
Hai ký tự sau % là các chữ số thập lục phân biểu diễn một giá trị byte đơn (00–FF). Đối với các ký tự ASCII, byte này là mã ASCII của ký tự: %41 = 65 = 'A'. Đối với các ký tự không phải ASCII, nhiều chuỗi %XX biểu diễn chuỗi byte UTF-8 của ký tự: ký hiệu euro là %E2%82%AC (ba byte: 0xE2, 0x82, 0xAC).
Trình duyệt sử dụng mã hóa nào khi gửi biểu mẫu HTML?
Biểu mẫu HTML với method=GET thêm các trường vào URL bằng mã hóa application/x-www-form-urlencoded, trong đó khoảng trắng được thay bằng + thay vì %20 và các ký tự đặc biệt khác được mã hóa phần trăm. Tùy chọn + → khoảng trắng của công cụ URL Decode xử lý định dạng này. Biểu mẫu với method=POST và enctype=application/x-www-form-urlencoded sử dụng cùng sơ đồ trong phần thân yêu cầu.
Có giới hạn kích thước cho việc giải mã không?
Không có giới hạn phía máy chủ — công cụ chạy hoàn toàn trong trình duyệt của bạn. Giới hạn thực tế phụ thuộc vào bộ nhớ trình duyệt. Đối với chuỗi mã hóa rất dài hoặc xử lý hàng loạt, hãy dùng decodeURIComponent trong một script.

Hướng dẫn theo ngôn ngữ