Công cụ mã hóa & giải mã URL

Mã hóa văn bản để dùng an toàn trong URL, giải mã chuỗi đã mã hóa về dạng dễ đọc và tách mọi URL thành các phần cùng tham số truy vấn.

Cập nhật

Bộ phân tích URL

Dữ liệu của bạn không bao giờ rời khỏi máy tính. Mọi xử lý diễn ra 100% cục bộ trong trình duyệt của bạn.

Công cụ này có hữu ích không?0.0 0 lượt đánh giá
Mã hóa văn bản hoặc tệp sang Base64 và giải mã Base64 về văn bản trực tuyếnMã hóa / Giải mã Base64 →

Cách dùng Mã hóa / Giải mã URL

  1. Chọn chế độ: Mã hóa thành phần cho một giá trị truy vấn hoặc đoạn đường dẫn, Mã hóa toàn bộ URL cho một địa chỉ hoàn chỉnh, hoặc Giải mã.
  2. Nhập hoặc dán nội dung vào ô bên trái. Kết quả sẽ tự cập nhật khi bạn gõ.
  3. Dùng Dấu cách thành + nếu bạn cần mã hóa kiểu form HTML, hoặc Từng dòng riêng biệt để xử lý một danh sách.
  4. Dán URL bất kỳ vào Bộ phân tích URL để xem host, đường dẫn và bảng giải mã các tham số truy vấn.

URL encoding là gì?

URL encoding, hay chính thức là percent-encoding (RFC 3986), thay thế các ký tự không được phép hoặc có ý nghĩa đặc biệt trong URL bằng % theo sau là hai chữ số thập lục phân. Dấu cách trở thành %20, & trở thành %26, còn các ký tự không thuộc ASCII trước tiên được chuyển thành byte UTF-8 rồi mã hóa từng byte: é → %C3%A9, € → %E2%82%AC. Nếu không mã hóa, một giá trị như Tom & Jerry trong chuỗi truy vấn sẽ bị tách thành hai tham số.

encodeURIComponent và encodeURI khác nhau thế nào?

JavaScript có hai hàm này, và chọn nhầm là lỗi rất phổ biến:

Ký tựencodeURIComponentencodeURI
Dấu cách%20%20
/ ? # & = : @ + , ; $Được mã hóaGiữ nguyên
A–Z a–z 0–9 - _ . ! ~ * ' ( )Giữ nguyênGiữ nguyên
é, emoji, các ký tự khác ngoài ASCIIMã hóa percent UTF-8Mã hóa percent UTF-8

Dùng encodeURIComponent (“Mã hóa thành phần”) cho mọi thứ bạn chèn vào một URL, như giá trị tham số truy vấn, đoạn đường dẫn, hay URL chuyển hướng được truyền làm tham số. Chỉ dùng encodeURI (“Mã hóa toàn bộ URL”) cho một URL hoàn chỉnh chỉ có dấu cách hoặc ký tự không thuộc ASCII, vì nó giữ nguyên các ký tự cấu trúc : / ? # &.

%20 hay +?

Trong phần đường dẫn của URL, dấu cách phải là %20. Trong chuỗi truy vấn được gửi từ form HTML (application/x-www-form-urlencoded), dấu cách được viết là +. Hầu hết máy chủ chấp nhận cả hai trong chuỗi truy vấn, nhưng khi cần gửi dấu cộng thật thì phải viết là %2B. Bộ giải mã mặc định coi + là dấu cách; hãy bỏ chọn tùy chọn nếu dữ liệu của bạn có dấu cộng thật.

Lỗi khi giải mã

Dấu % phải được theo sau bởi đúng hai chữ số thập lục phân, và ký tự UTF-8 nhiều byte cần đủ tất cả các byte của nó. Hàm decodeURIComponent() thông thường sẽ ném lỗi URIError: malformed URI sequence ngay khi gặp chuỗi sai đầu tiên. Công cụ này giải mã mọi phần hợp lệ, giữ nguyên các phần lỗi và cho bạn biết những phần nào bị lỗi. Chuỗi bị mã hóa hai lần (%2520) sau một lần giải mã sẽ thành %20, bạn cần giải mã thêm lần nữa để có dấu cách.

Cấu trúc của một URL

https://user@shop.example.com:8443/search?q=shoes#results gồm có scheme (https:), thông tin đăng nhập (nếu có), host, cổng, đường dẫn, chuỗi truy vấn và fragment. Bộ phân tích ở trên dùng API URL chuẩn của trình duyệt (WHATWG URL Standard), cũng chính là API được fetch() sử dụng. Đang tạo link chiến dịch? Hãy thử UTM Builder. Cần mã hóa dữ liệu nhị phân? Hãy dùng Base64.

Cũng được tìm dưới tên: mã hóa url, giải mã url, percent encoding, url encode online, urldecode online, encodeuricomponent, phân tích url, escape ký tự url.

Các công cụ dùng kèm tốt với Mã hóa / Giải mã URL

  • Mã hóa HTML Entity — Escape < > & " để văn bản hiển thị an toàn trong HTML, chuyển dấu và ký hiệu sang entity dạng tên hoặc số, hoặc giải mã HTML chứa entity về văn bản thuần.
  • Tạo slug URL — Chuyển mọi tiêu đề thành slug URL gọn gàng, viết thường, với cách bỏ dấu, chuyển ä/ö/ü và chữ Cyrillic chính xác.
  • Giải mã JWT — Dán JSON Web Token vào đây để xem header và payload, kiểm tra thời điểm hết hạn và xác minh chữ ký.
  • Dịch Mã Morse — Nhập văn bản để có mã Morse, hoặc dán chấm và gạch để giải mã.

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

Khi nào nên dùng encodeURIComponent thay vì encodeURI?
Dùng encodeURIComponent cho từng phần riêng lẻ bạn đưa vào URL, như giá trị truy vấn, đoạn đường dẫn hoặc cả một URL được truyền làm tham số. Chỉ dùng encodeURI cho một URL hoàn chỉnh, vì nó giữ nguyên các ký tự / ? & # = mà không mã hóa.
Vì sao dấu cách đôi khi là %20, đôi khi là +?
%20 là cách mã hóa theo RFC 3986, hợp lệ ở mọi vị trí trong URL. Còn + chỉ có nghĩa là dấu cách trong chuỗi truy vấn kiểu form (application/x-www-form-urlencoded), loại dữ liệu mà form HTML gửi đi.
“URIError: malformed URI sequence” có nghĩa là gì?
Chuỗi có dấu % không đi kèm hai chữ số thập lục phân, hoặc có chuỗi byte UTF-8 chưa đầy đủ. Bộ giải mã này sẽ giữ nguyên các phần đó và liệt kê chúng ra, thay vì báo lỗi và dừng lại.
Những ký tự nào không bao giờ cần mã hóa?
Đó là các ký tự không dành riêng: chữ cái A–Z a–z, chữ số 0–9 và - _ . ~. Mọi ký tự khác hoặc được dành riêng cho cú pháp URL, hoặc phải được mã hóa percent.
Tôi có thể cài Mã hóa / Giải mã URL như một ứng dụng web và dùng khi không có mạng không?
Có. Mã hóa / Giải mã URL là một ứng dụng web (PWA) có thể cài đặt — cài trực tiếp từ trình duyệt, không cần tải từ cửa hàng ứng dụng. Trên Chrome hoặc Edge (Windows, macOS, Linux, ChromeOS) hoặc Android, bấm Cài đặt ứng dụng ở đầu trang này; trên iPhone và iPad, dùng Chia sẻ → Thêm vào Màn hình chính; trên Mac, dùng File → Add to Dock trong Safari 17 trở lên. Sau đó ứng dụng mở trong cửa sổ riêng với biểu tượng riêng, và vì chạy hoàn toàn trên trình duyệt nên vẫn hoạt động khi không có mạng. Firefox trên máy tính không thể cài ứng dụng web. Cách cài đặt hoạt động thế nào.

Công cụ liên quan