Bỏ qua đến nội dung chính
FreeOnlineTools Go
Tiếng Việt
Làm cách nào để

Cách Mã hóa và Giải mã URL: Hướng dẫn Đầy đủ

Bởi FreeOnlineTools Team · Đã cập nhật 2026-08-28

Trả lời nhanh

URL encoding chuyển ký tự unsafe thành chuỗi %XX trong đó XX là giá trị hex của byte. Khoảng trắng thành %20 (hoặc + trong form data), ký tự Trung Quốc thành chuỗi %XX multi-byte. Dùng URL Encoder và URL Decoder miễn phí —tất cả xử lý cục bộ.

Giới thiệu

URL encoding, còn gọi percent-encoding, là cơ chế mã hóa ký tự reserved và unsafe trong URL để URL có thể truyền an toàn qua internet. URL chỉ chứa tập ký tự ASCII giới hạn; bất kỳ ký tự nào khác (khoảng trắng, chữ phi-ASCII, ký hiệu) phải được percent-encoded as chuỗi bắt đầu bằng % theo sau hai chữ số hex đại diện giá trị byte.

Từng bước một

  1. Xác định những gì cần mã hóa

    Các ký tự không nằm trong tập hợp không được đặt trước (A-Z, a-z, 0-9, -, ., _, ~) phải được mã hóa theo phần trăm. Điều này bao gồm dấu cách, dấu phân tách truy vấn như = và &, dấu gạch chéo và tất cả các ký tự không phải ASCII như tiếng Trung, tiếng Ả Rập hoặc biểu tượng cảm xúc.

  2. Mã hóa URL hoặc chuỗi truy vấn

    Dán văn bản của bạn vào công cụ Bộ mã hóa URL. Nó sử dụng EncodeURIComponent() để mã hóa mọi ký tự dành riêng. Kết quả xuất hiện ngay lập tức trong trường đầu ra.

  3. Sao chép kết quả được mã hóa

    Bấm vào nút Sao chép để sao chép chuỗi được mã hóa phần trăm. Giờ đây, bạn có thể nhúng nó một cách an toàn vào tham số truy vấn URL, yêu cầu API hoặc gửi biểu mẫu.

  4. Giải mã URL được mã hóa

    Dán URL hoặc chuỗi truy vấn đã mã hóa vào công cụ Bộ giải mã URL. Nó sử dụng giải mãURIComponent() để khôi phục các ký tự gốc. Xác minh đầu ra được giải mã phù hợp với mong đợi của bạn.

  5. Xác minh các trường hợp cạnh

    Kiểm tra xem các khoảng trắng có được giải mã chính xác hay không (%20 so với +), các chuỗi UTF-8 nhiều byte giải mã thành đúng ký tự và các chuỗi đã được mã hóa không được mã hóa kép.

Ví dụ

Mã hóa văn bản bằng dấu cách

đầu vào: Hello World

đầu ra: Hello%20World

Mã hóa dấu phân cách đường dẫn

đầu vào: a/b

đầu ra: a%2Fb

Mã hóa ký tự Trung Quốc (UTF-8)

đầu vào: 你好

đầu ra: %E4%BD%A0%E5%A5%BD

Giải mã tham số truy vấn được mã hóa

đầu vào: key%3Dvalue%26foo%3Dbar

đầu ra: key=value&foo=bar

Các vấn đề thường gặp

  • Mã hóa kép: mã hóa chuỗi đã được mã hóa biến% 20 thành% 2520. Luôn kiểm tra xem đầu vào đã được mã hóa chưa trước khi mã hóa lại.
  • Gây nhầm lẫn giữa mã hóa URI với mã hóaURIComponent: mã hóaURI giữ nguyên các ký tự dành riêng như /, ?, & nguyên vẹn cho URLs đầy đủ, trong khi mã hóaURIComponent mã hóa mọi thứ cho các giá trị tham số truy vấn.
  • Xử lý không gian: %20 là dạng được mã hóa phần trăm; + chỉ hợp lệ trong dữ liệu nội dung được mã hóa của ứng dụng/x-www-form-urlencode, không hợp lệ trong đường dẫn URL hoặc chuỗi truy vấn trên mỗi RFC 3986.
  • Mã hóa cũ không phải UTF-8: các trình duyệt hiện đại mã hóa dưới dạng UTF-8, nhưng các hệ thống cũ có thể sử dụng GBK hoặc Latin-1, gây ra hiện tượng mojibake khi được giải mã ở phía bên kia.

Mẹo

  • Sử dụng mã hóaURIComponent() cho các giá trị tham số truy vấn riêng lẻ và mã hóaURI() cho toàn bộ URLs đã được định dạng đúng.
  • Khi xây dựng chuỗi truy vấn, hãy mã hóa giá trị chứ không phải dấu phân cách = hoặc & — mã hóa từng giá trị riêng biệt rồi nối với &.
  • Sử dụng công cụ Bộ mã hóa và Giải mã URL của chúng tôi để gỡ lỗi các lệnh gọi API trả về 400 lỗi do chuỗi truy vấn không đúng định dạng.
  • Luôn giải mã ở phía máy chủ bằng cách sử dụng cùng một mã hóa ký tự (UTF-8) để tránh mojibake.

Công cụ liên quan

Hướng dẫn liên quan

Tài liệu tham khảo