DevToolPal
VI

Mã hóa & giải mã URL

Mã hóa phần trăm văn bản để dùng an toàn trong URL và query string, hoặc giải mã chuỗi %XX trở lại văn bản dễ đọc.

Chạy cục bộ, không bao giờ tải lên

Tùy chọn

Chế độ
Mã hóa

Đầu vào

0 ký tự · 0 B

Đầu ra

0 ký tự · 0 B

Công cụ này làm gì

Mã hóa URL, còn gọi là percent-encoding (mã hóa phần trăm), thay thế những ký tự không được phép hoặc có ý nghĩa đặc biệt trong URL bằng dấu % theo sau là hai chữ số thập lục phân. Dấu cách thành %20, dấu và (&) thành %26, còn văn bản không phải ASCII như 中文 trước tiên được chuyển thành các byte UTF-8 rồi mỗi byte được viết thành %XX.

Công cụ này mã hóa văn bản để bạn đặt nó an toàn vào query string, một đoạn đường dẫn hay một request API, và giải mã các chuỗi đã mã hóa phần trăm mà bạn sao chép từ log, thanh địa chỉ trình duyệt hay bản ghi HTTP trở lại thành văn bản dễ đọc.

Cách sử dụng

  1. Dán văn bản hoặc URL vào ô Đầu vào, hoặc nhấn Ví dụ.
  2. Chọn Mã hóa hoặc Giải mã.
  3. Khi mã hóa, chọn Thành phần để mã hóa một giá trị đơn lẻ (ví dụ một từ khóa tìm kiếm) hoặc URL đầy đủ để giữ nguyên :, /, ?, & và =.
  4. Bật Dấu cách thành + cho dữ liệu form HTML, và Từng dòng riêng để xử lý cả danh sách giá trị cùng lúc.
  5. Sao chép hoặc tải kết quả xuống. Nếu giải mã thất bại, thông báo lỗi sẽ cho biết vị trí của chuỗi escape bị hỏng.

Ví dụ

Mã hóa từ khóa tìm kiếm hello world & more dưới dạng thành phần cho ra:

hello%20world%20%26%20more

Giải mã q=%E4%BD%A0%E5%A5%BD cho ra q=你好.

Khi nào dùng chế độ nào

  • Tự tạo query string: mã hóa từng giá trị dưới dạng thành phần, rồi nối chúng bằng & và =.
  • Làm sạch một liên kết đầy đủ có chứa dấu cách hoặc ký tự tiếng Trung: dùng URL đầy đủ để giữ nguyên cấu trúc của liên kết.
  • Đọc log máy chủ: giải mã khi bật Dấu cách thành +, vì nhiều máy chủ ghi log dữ liệu form theo định dạng đó.

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

› "Thành phần" và "URL đầy đủ" khác nhau thế nào?

Thành phần mã hóa mọi ký tự dành riêng, kể cả / ? & = và #, nên kết quả an toàn khi nằm trong một tham số query hoặc một đoạn đường dẫn. Nó tương đương encodeURIComponent của JavaScript. URL đầy đủ giữ lại các ký tự đó để địa chỉ vẫn hoạt động như một liên kết, tương đương encodeURI.

› Dấu cách nên thành %20 hay +?

Dùng %20 cho đường dẫn và hầu hết các API. Chỉ dùng + cho dữ liệu form HTML (application/x-www-form-urlencoded), là thứ trình duyệt gửi đi khi một form được submit. Bật "Dấu cách thành +" cho trường hợp đó.

› Tại sao tôi gặp lỗi "not valid UTF-8" khi giải mã?

Các byte %XX không tạo thành một ký tự UTF-8 hoàn chỉnh, thường là do văn bản bị cắt giữa một ký tự nhiều byte hoặc được mã hóa bằng bảng mã cũ như GBK hay Latin-1.

› Dữ liệu của tôi có bị gửi lên máy chủ không?

Không. Việc mã hóa và giải mã chạy hoàn toàn trong trình duyệt của bạn.