Bộ giải mã URL
Biến một URL đã percent-encode trở lại văn bản thuần.
Chạy ngay trên trình duyệt. Không có gì bạn nhập vào bị gửi đi đâu cả.
- Báo lỗi rõ ràng khi đầu vào sai
- Tùy chọn coi + là dấu cách
- Hoạt động offline
Cách giải mã URL
- Dán văn bản đã mã hóa.
- Bật coi + là dấu cách nếu nó đến từ một form web.
- Sao chép kết quả đã giải mã.
Ví dụ: đầu vào đã mã hóa, đầu ra đã giải mã
| Đã mã hóa | Đã giải mã |
|---|---|
| Hello%20World | Hello World |
| a%2Bb | a+b |
| caf%C3%A9 | cafe (có dấu) |
| a+b, khi bật coi + là dấu cách | a b |
Vì sao giải mã có thể thất bại
- Một dấu % không được theo sau bởi hai chữ số hex hợp lệ, thường là một dấu % thật sự chưa từng được mã hóa, như một mã giảm giá kiểu SAVE10%.
- Văn bản sao chép từ hai nguồn khác nhau, trong đó một phần đã được giải mã và phần khác vẫn còn percent-encode.
- Các byte đã mã hóa không tạo thành UTF-8 hợp lệ, xảy ra khi văn bản được mã hóa bằng một bảng mã ký tự khác.
URL đã mã hóa đến từ đâu
- Thanh địa chỉ trình duyệt, tự mã hóa các ký tự đặc biệt trong bất cứ gì bạn gõ hoặc dán vào.
- Log máy chủ và query string được chia sẻ trong một báo cáo lỗi hay ticket hỗ trợ.
- Link webhook và chuyển hướng, đáng để giải mã và đọc trước khi tin tưởng chúng.
- Một link theo dõi hay phân tích, nơi giải mã cho thấy chính xác các tham số và giá trị mà một cú click sẽ gửi đi.
Câu hỏi thường gặp về Giải mã URL
Vì sao tôi gặp lỗi giải mã?
Nghĩa là văn bản có một dấu phần trăm không được theo sau bởi hai chữ số hex hợp lệ, nên nó chưa được percent-encode đúng cách.
Tôi có nên luôn bật coi + là dấu cách không?
Chỉ khi văn bản đến từ một form hoặc query string, nơi ký tự + nghĩa là dấu cách. Một đường dẫn hay một giá trị base64 có thể thực sự chứa dấu +.
Đây có giống với việc un-escape một URL không?
Đúng vậy, công cụ này đảo ngược percent-encoding chuẩn dùng trong URL, query string và dữ liệu form.
Công cụ này có theo cùng chuẩn với bộ mã hóa URL không?
Có. Nó đảo ngược percent-encoding theo RFC 3986 bằng hàm decodeURIComponent có sẵn của JavaScript.
Nếu văn bản của tôi có một dấu phần trăm chưa từng được mã hóa thì sao?
Nó sẽ gây lỗi giải mã trừ khi % được theo sau bởi hai chữ số hex hợp lệ. Hãy mã hóa dấu phần trăm đó thành %25 trước khi giải mã phần còn lại của văn bản.
Công cụ có giải mã được cả một URL kèm query string không?
Có, hãy dán cả địa chỉ. Mọi phần đã được percent-encode, kể cả các giá trị bên trong query string, sẽ được giải mã cùng lúc.
Công cụ này bọc hàm JavaScript nào?
decodeURIComponent, cùng một tùy chọn thêm để coi ký tự + là dấu cách, điều mà decodeURIComponent một mình không làm, vì + chỉ là quy ước dấu cách trong dữ liệu mã hóa theo kiểu form.
Giải mã có làm thay đổi chữ cái và chữ số thường không?
Không. Chúng chưa từng bị mã hóa ngay từ đầu, nên được giữ nguyên.