§

Nhập văn bản để giải mã:

Nhập văn bản được mã hóa URL mà bạn muốn giải mã. Công cụ sẽ chuyển đổi các ký tự được mã hóa phần trăm trở lại dạng ban đầu của chúng.
§

Output

decoded

Đối với các nhóm marketing và phân tích dữ liệu Việt Nam, giải mã URL là bước đầu tiên khi đọc báo cáo Google Analytics 4 từ chiến dịch Zalo Ads, Cốc Cốc Search hay TikTok Vietnam. Tham số UTM chứa tên chiến dịch tiếng Việt có dấu thường bị mã hóa phần trăm và cần khôi phục để báo cáo ban giám đốc. Kỹ sư SecOps tại VNPT, FPT Telecom và Viettel giải mã URL từ log WAF Cloudflare khi điều tra sự cố. Đội webhook tại Shopee Vietnam giải mã trường state OAuth của VNeID và callback từ FPT eKYC, tuân thủ Nghị định 13/2023.

Tùy chọn nâng cao

Chuyển + thành khoảng trắng

Khi được bật, các ký tự + sẽ được chuyển đổi thành khoảng trắng. Điều này hữu ích khi giải mã các tham số truy vấn.

Chế độ trực tiếp

Khi được bật, văn bản sẽ được giải mã tự động khi bạn gõ.

Các tùy chọn này giúp bạn kiểm soát cách các ký tự được mã hóa được giải mã trong URL của bạn.

Giải mã URL là gì?

Giải mã URL đảo ngược mã hóa phần trăm: đọc các chuỗi thoát %XX trong URL đã mã hóa và chuyển chúng trở lại thành ký tự tương ứng. Đó là cách bạn khôi phục chuỗi truy vấn, giá trị biểu mẫu hoặc đoạn đường dẫn có thể đọc được từ URL mà trình duyệt, API hoặc dòng nhật ký truyền cho bạn dưới dạng đã mã hóa.

Giải mã URL hoạt động như thế nào?

Giải mã URL tuân theo một quy trình cụ thể để chuyển đổi các chuỗi được mã hóa phần trăm trở lại thành các ký tự ban đầu của chúng:

  1. Chuỗi đầu vào được quét để tìm các chuỗi thoát mã hóa phần trăm (%XX)
  2. Mỗi %XX được chuyển đổi từ hai chữ số thập lục phân về giá trị byte ban đầu
  3. Các byte được giải mã liên tiếp được ghép lại thành các ký tự UTF-8 (một chuỗi nhiều byte trở thành một ký tự)
  4. Trong ngữ cảnh chuỗi truy vấn, + được giải mã thành dấu cách (application/x-www-form-urlencoded), trong khi %2B vẫn là dấu + theo nghĩa đen
  5. Các ký tự không dành riêng và văn bản đã giải mã được giữ nguyên không thay đổi

Tại sao nên dùng bộ giải mã URL?

  • Đầu ra dễ đọc: chuyển %20, %40 và %3D trở lại thành dấu cách, @ và = để bạn có thể đọc URL thực sự nói gì
  • Văn bản quốc tế: tái tạo các ký tự có dấu và ký tự không phải ASCII từ chuỗi byte UTF-8, để %C3%A9 lại được đọc là é
  • Gỡ lỗi: kiểm tra giá trị thực bên trong chuỗi truy vấn, chuyển hướng OAuth hoặc tải trọng webhook trước khi thực hiện hành động
  • Đúng chuẩn: giải mã theo RFC 3986 — cùng quy tắc mà trình duyệt và máy chủ sử dụng — để thấy chính xác những gì chúng thấy

Các ứng dụng phổ biến của giải mã URL là gì?

Giải mã URL rất cần thiết trong nhiều tình huống phát triển web:

  • Gửi biểu mẫu: đọc lại giá trị trường ban đầu từ dữ liệu GET và POST dạng application/x-www-form-urlencoded
  • Phát triển API: giải nén các tham số đường dẫn và truy vấn được mã hóa phần trăm khi đến điểm cuối API
  • Hệ thống tệp: khôi phục đường dẫn và tên tệp đã bị mã hóa phần trăm để di chuyển bên trong URL
  • Gỡ lỗi liên kết: giải mã URL đã chia sẻ hoặc đã ghi để xem các ký tự đặc biệt và văn bản quốc tế chúng mang theo

Ví dụ về giải mã URL trông như thế nào?

Dưới đây là một số ví dụ phổ biến về giải mã URL: %20 (hoặc +) trở thành dấu cách, %40 trở thành @, %23 trở thành #, %26 trở thành &, và %3D trở thành =. Chuỗi UTF-8 như %C3%A9 trở thành ký tự quốc tế é.

Mã hóa phần trăm là gì?

Mã hóa phần trăm là cơ chế được định nghĩa bởi RFC 3986 §2.1 để biểu diễn các ký tự không an toàn hoặc được dành riêng bên trong một URI. Quy tắc mang tính cơ học: mỗi byte không thể xuất hiện theo nghĩa đen sẽ được viết dưới dạng dấu phần trăm theo sau là hai chữ số hex — dạng %XX —, trong đó XX là giá trị của byte. Các ký tự không phải ASCII như é trước hết được mã hóa thành chuỗi byte UTF-8, sau đó từng byte được mã hóa phần trăm riêng lẻ. Lập trình viên gặp điều này gần như mỗi ngày: trong chuỗi truy vấn, gửi biểu mẫu, URL callback OAuth, tham số đường dẫn REST API, và mọi nơi URL phải mang dấu câu, khoảng trắng hoặc ký tự nằm ngoài tập không dành riêng A–Z a–z 0–9 - _ . ~.

Việc giải mã %C3%A9 thành é thực sự hoạt động như thế nào?

Hãy lấy chuỗi truy vấn đã mã hóa ?q=caf%C3%A9&lang=fr. Giải mã cho ra ?q=café&lang=fr. Đây là phần phân tích từng byte:

  • Đầu vào: ?q=caf%C3%A9&lang=fr
  • Đầu ra: ?q=café&lang=fr
  1. %C3 → byte 0xC3 (nhị phân 11000011) — byte dẫn đầu của chuỗi UTF-8 2 byte.
  2. %A9 → byte 0xA9 (nhị phân 10101001) — byte tiếp nối. Gộp lại, C3 A9 chính là mã hóa UTF-8 của U+00E9, tức là é.
  3. Các ký tự ?, =& được giữ nguyên vì chúng mang tính cấu trúc — chúng phân tách truy vấn và các cặp khóa/giá trị. Phần ký tự caf cũng đi qua mà không đổi, vì chữ cái ASCII viết thường thuộc tập không dành riêng.

decodeURIComponent và decodeURI khác nhau ra sao?

JavaScript cung cấp hai bộ giải mã tích hợp, và nhầm lẫn chúng là một trong những lỗi xử lý URL phổ biến nhất:

  • decodeURIComponent(str) giải mã mọi chuỗi mã hóa phần trăm, bao gồm các ký tự dành riêng như &, =, ?, /#. Hãy dùng nó cho từng giá trị chuỗi truy vấn hoặc đoạn đường dẫn — đừng bao giờ dùng trên cả URL.
  • decodeURI(str) được thiết kế thận trọng có chủ đích: nó bỏ qua các ký tự dành riêng. Truyền %26 vào sẽ trả về chuỗi nguyên văn %26, không phải &. Nó dành cho toàn bộ URI khi bạn muốn cấu trúc sống sót qua một vòng đi-về.

Quy tắc thực hành: nếu chuỗi là một mảnh của URL (một tham số đơn, một fragment, một tên tệp đã mã hóa), hãy dùng decodeURIComponent. Công cụ này hoạt động như decodeURIComponent — mọi chuỗi %XX trong đầu vào của bạn đều được giải mã, kể cả ký tự dành riêng.

Giải mã URL là cách bạn đọc những gì nó thực sự chứa. Dán một chuỗi đã mã hóa vào ô trên và mọi chuỗi %XX đều trở thành ký tự của nó ngay trong trình duyệt — để bạn có thể gỡ lỗi tham số truy vấn, kiểm tra chuyển hướng OAuth hoặc khôi phục tên tệp có dấu mà không cần gửi bất cứ thứ gì đến máy chủ.