Bộ mã hóa/Bộ giải mã URL

Bất kỳ ký tự nào nằm ngoài chuỗi A-Z a-z 0-9 - _ . ~ đều phải được mã hóa bằng ký tự phần trăm khi xuất hiện trong URL. Nếu bỏ sót một ký tự như vậy, trình duyệt có thể dẫn bạn đến địa điểm không mong muốn hoặc API sẽ từ chối yêu cầu với mã lỗi 400. Bộ mã hóa này xử lý cả URL đầy đủ lẫn giá trị tham số nguyên thủy, chuyển đổi giữa định dạng văn bản dễ đọc và định dạng truyền tin an toàn mà không làm thay đổi các ký tự cấu trúc như / hay ?, trừ khi bạn yêu cầu cụ thể.

Cách mã hóa và giải mã một URL

  1. 1

    Dán địa chỉ URL hoặc giá trị

    Nhập một địa chỉ URL đầy đủ, một chuỗi truy vấn hoặc một tham số đơn lẻ.

  2. 2

    Chọn cấp độ mã hóa

    Chế độ URL đầy đủ giữ nguyên `/ : ? #`. Chế độ thành phần thoát mọi ký tự được dành riêng.

  3. 3

    Thực hiện chuyển đổi

    Mỗi ký tự được mã hóa theo chuẩn UTF-8 và các byte được dành riêng sẽ được thay bằng `%HH`.

  4. 4

    Đảo ngược khi cần thiết

    Cùng công cụ này giải mã dữ liệu đầu vào đã thoát phần trăm trở lại thành các ký tự gốc.

encode và encodeComponent khác nhau thế nào

Hai chế độ này bắt nguồn từ JavaScript và tương ứng với các quy tắc khác nhau trong RFC 3986.

Chế độ Giữ nguyên Dùng khi
URL đầy đủ (encodeURI) : / ? # [ ] @ ! $ & ' ( ) * + , ; = Bạn đã có sẵn một URL có cấu trúc
Thành phần (encodeURIComponent) Chỉ các ký tự không được dành riêng Bạn đang chèn một giá trị vào mẫu

Các lỗi điển hình mà công cụ này khắc phục

  • Khoảng trắng trong giá trị truy vấn sẽ thành %20, giúp máy chủ nhận được một tham số duy nhất.
  • Dấu và (ampersand) trong giá trị sẽ thành %26 để không mở ra một cặp truy vấn mới.
  • Dấu cộng trong từ khóa tìm kiếm sẽ thành %2B để máy chủ không hiểu chúng là khoảng trắng.
  • Văn bản không phải ASCII như café sẽ thành caf%C3%A9 (UTF-8, chiếm hai byte).

Bẫy mã hóa kép

Nếu bạn mã hóa một chuỗi vốn đã được mã hóa, kết quả sẽ vô nghĩa: %20 trở thành %2520. Hãy luôn giải mã trước khi bạn không chắc chắn về nguồn gốc của dữ liệu đầu vào. Công cụ sẽ cảnh báo khi phát hiện các chuỗi phần trăm trong dữ liệu đầu vào trước khi mã hóa.

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

Có, khi bạn chọn chế độ form-URL. Chế độ RFC 3986 nghiêm ngặt giữ + như một dấu cộng theo nghĩa đen, bởi trong các URI chỉ %20 mới là khoảng trắng chuẩn.

Có. Chế độ URL đầy đủ chỉ mã hóa những ký tự không thuộc cấu trúc URI hợp lệ; do đó một URL đúng sẽ được truyền nguyên vẹn, trong khi khoảng trắng và ký tự không phải ASCII bên trong các giá trị vẫn được thoát.

UTF-8, theo RFC 3986 và tiêu chuẩn URL của WHATWG. Các mã hóa cũ như ISO-8859-1 không được hỗ trợ.

Không. Quá trình mã hóa được thực hiện trực tiếp trong trình duyệt của bạn; không có dữ liệu nào được gửi đi hay lưu trữ.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác