Lập Trình

URL Encoder / Decoder

Dấu cách, ký hiệu và ký tự đặc biệt làm hỏng URL — mã hóa phần trăm giải quyết điều đó. Mã hóa bất kỳ URL nào để truyền tải an toàn, hoặc giải mã ngược lại thành văn bản dễ đọc, ngay lập tức.

Công cụ này có hữu ích với bạn không?

URL Encoder / Decoder là gì?

URL Encoder/Decoder là một công cụ phát triển web thiết yếu chuyển đổi giữa văn bản thường và định dạng phần trăm mã hóa an toàn cho URL. Khi URL chứa khoảng trắng, ký hiệu đặc biệt hoặc ký tự không phải ASCII như chữ cái có dấu và emoji, chúng sẽ bị hỏng nếu không được mã hóa đúng cách. Công cụ này cung cấp mã hóa và giải mã tức thì với hỗ trợ đầy đủ cho chế độ URL (mã hóa URL đầy đủ) và chế độ thành phần (mã hóa giá trị tham số truy vấn riêng lẻ), cùng chế độ hàng loạt để xử lý nhiều chuỗi cùng lúc.

Khi Nào Nên Sử Dụng Máy Tính Này

  • Bạn đang xây dựng URL có tham số truy vấn chứa dấu cách, ký hiệu hoặc ký tự không phải ASCII
  • Bạn cần giải mã một URL đã mã hóa phần trăm để đọc nội dung thực của nó
  • Bạn đang gỡ lỗi một API từ chối URL của bạn vì các ký tự đặc biệt chưa được mã hóa
  • Bạn đang xử lý các URL do người dùng gửi cần được làm sạch trước khi sử dụng
  • Bạn cần mã hóa hoặc giải mã hàng loạt nhiều đoạn URL cùng lúc
  • Bạn đang xây dựng các chuyển hướng hoặc URL callback trong đó tham số phải được mã hóa đúng cách

Các bước:

  1. Nhập hoặc dán văn bản/URL bạn muốn mã hóa hoặc giải mã.
  2. Chọn chế độ Mã hóa hoặc Giải mã.
  3. Bấm nút Chuyển đổi.
  4. Sao chép kết quả để sử dụng trong ứng dụng của bạn.

Công Thức

Mã hóa: Ký tự không an toàn → % + mã thập lục phân 2 chữ số ➡ Giải mã: %XX → Ký tự gốc

Trường Hợp Sử Dụng

  • Xây dựng chuỗi truy vấn an toàn cho URL
  • Xử lý tham số yêu cầu API
  • Gỡ lỗi các URL đã mã hóa
  • Tạo slug và đường dẫn thân thiện với URL

Lợi Ích Chính

  • Mã hóa và giải mã tức thì với kết quả thời gian thực
  • Hỗ trợ cả chế độ URL và chế độ thành phần cho các ngữ cảnh khác nhau
  • Chế độ hàng loạt để mã hóa hoặc giải mã nhiều chuỗi cùng lúc
  • Xử lý tất cả ký tự đặc biệt bao gồm Unicode và emoji
  • 100% dựa trên trình duyệt — không dữ liệu nào được gửi đến máy chủ
  • Đếm ký tự trực quan để xác minh mã hóa không nhân đôi hoặc cắt bớt đầu vào

Mẹo Chuyên Nghiệp

  • Luôn mã hóa tham số URL do người dùng tạo trước khi đưa vào URL
  • Sử dụng encodeURIComponent() trong JavaScript cho các giá trị tham số truy vấn riêng lẻ
  • Giải mã URL trước khi hiển thị cho người dùng để dễ đọc hơn
  • Cẩn thận với mã hóa kép: nếu bạn thấy %25 theo sau là thêm chữ số thập lục phân, URL có thể đã được mã hóa hai lần
  • Sử dụng chế độ thành phần khi xây dựng chuỗi truy vấn và chế độ URL khi mã hóa toàn bộ đường dẫn URL hoặc URL đầy đủ

Những Lỗi Thường Gặp Cần Tránh

  • Mã hóa kép URL bằng cách mã hóa một URL đã được mã hóa, chuyển %20 thành %2520
  • Sử dụng ngữ cảnh mã hóa sai — chế độ URL và thành phần tạo ra đầu ra khác nhau
  • Quên rằng + chỉ đại diện cho khoảng trắng trong dữ liệu application/x-www-form-urlencoded
  • Không xử lý đúng cách các ký tự không phải ASCII — luôn đảm bảo mã hóa UTF-8 trước khi mã hóa phần trăm

Các Thuật Ngữ Chính Được Giải Thích

Mã hóa phần trăm: Cơ chế tiêu chuẩn để mã hóa ký tự trong URL, thay thế ký tự không an toàn bằng % theo sau là mã ASCII thập lục phân hai chữ số
Chuỗi truy vấn: Phần của URL sau ký tự ?, chứa các cặp giá trị-trì được phân tách bởi &
Các ký tự dự phòng: Ký tự như :, /, ?, #, [, ], @, !, $, &, (, ), *, +, ,, ;, = có ý nghĩa cú pháp đặc biệt trong URL theo RFC 3986
Chế độ thành phần so với chế độ URL: Chế độ thành phần mã hóa nhiều ký tự hơn và cho giá trị riêng lẻ; chế độ URL bảo toàn cấu trúc URL cho các đường dẫn đầy đủ

Khái niệm liên quan

  • Mã hóa phần trăm: Cơ chế thay thế các ký tự không an toàn bằng % theo sau là mã ASCII thập lục phân hai chữ số để truyền tải URL an toàn
  • Chuỗi truy vấn: Phần của URL sau ký tự ?, chứa các cặp khóa-giá trị được phân tách bằng ký tự &
  • Ký tự dành riêng: Các ký tự như :, /, ?, #, [, ], @, !, $, &, (, ), *, +, ,, ;, = có ý nghĩa đặc biệt trong cú pháp URL theo RFC 3986
  • Ký tự an toàn cho URL: Các ký tự không dành riêng (chữ cái, chữ số, -, _, ., ~) không cần mã hóa trong URL
  • encodeURIComponent và encodeURI: Các hàm JavaScript trong đó encodeURIComponent mã hóa mọi thứ trừ chữ cái, chữ số và _*-.~ cho các giá trị riêng lẻ, trong khi encodeURI giữ nguyên các ký tự cấu trúc URL cho URL đầy đủ

Ví Dụ

Mã hóa "Hello World & Friends!" → "Hello%20World%20%26%20Friends%21". Giải mã "search%3Fq%3Dhello+world" → "search?q=hello world".

Giải thích kết quả của bạn

Trình mã hóa chuyển đổi các ký tự URL không an toàn (dấu cách, &, ?, #, không phải ASCII, v.v.) thành định dạng mã hóa phần trăm, trong đó mỗi ký tự trở thành % theo sau là mã thập lục phân hai chữ số. Trình giải mã đảo ngược quá trình này, khôi phục văn bản gốc dễ đọc. Số ký tự giúp bạn xác minh rằng mã hóa không làm trùng lặp hoặc cắt bớt đầu vào một cách bất ngờ. Chế độ thành phần mã hóa một tập hợp ký tự rộng hơn và được thiết kế để mã hóa các giá trị tham số truy vấn riêng lẻ. Chế độ URL nghiêm ngặt hơn về những gì được mã hóa và được thiết kế để mã hóa toàn bộ đường dẫn URL hoặc toàn bộ URL. Dùng chế độ thành phần khi bạn xây dựng chuỗi truy vấn và chế độ URL khi bạn mã hóa một URL hoàn chỉnh. Chế độ hàng loạt cho phép bạn mã hóa hoặc giải mã nhiều dòng cùng lúc, hữu ích khi bạn có danh sách URL hoặc tham số cần xử lý. Mỗi dòng được coi là một đầu vào riêng biệt và tất cả kết quả được hiển thị cùng nhau để dễ sao chép.

Câu Hỏi Thường Gặp

Tại sao URL cần được mã hóa?
URL chỉ có thể chứa một số ký tự ASCII nhất định. Các ký tự như dấu cách, &, ?, # và ký tự không phải ASCII phải được mã hóa (mã hóa phần trăm) để đảm bảo truyền tải an toàn qua internet.
Mã hóa phần trăm là gì?
Mã hóa phần trăm thay thế các ký tự không an toàn bằng dấu % theo sau là mã thập lục phân hai chữ số. Ví dụ, dấu cách trở thành %20 và & trở thành %26.
Mã hóa URL có giống mã hóa HTML không?
Không. Mã hóa URL (mã hóa phần trăm) dành cho URL. Mã hóa HTML sử dụng thực thể như &amp; cho & hoặc &lt; cho <. Chúng phục vụ các mục đích khác nhau trong phát triển web.
Khi nào tôi nên dùng chế độ URL thay vì chế độ thành phần?
Dùng chế độ thành phần khi mã hóa một giá trị tham số truy vấn duy nhất (ví dụ: một cụm từ tìm kiếm). Dùng chế độ URL khi mã hóa đường dẫn URL đầy đủ hoặc khi bạn cần toàn bộ chuỗi an toàn cho URL. Chế độ thành phần mã hóa nhiều ký tự hơn vì nó giả định giá trị sẽ được đặt bên trong cấu trúc URL.
Tại sao mã hóa 'Hello World' cho 'Hello%20World' thay vì 'Hello+World'?
Trong các đoạn đường dẫn URL, dấu cách được mã hóa thành %20. Mã hóa dấu cách bằng + chỉ được dùng trong dữ liệu application/x-www-form-urlencoded (gửi biểu mẫu HTML). Thực hành tốt nhất hiện đại là dùng %20 một cách nhất quán trong URL. Máy tính này dùng %20 để mã hóa URL.
Tôi có thể mã hóa các ký tự không phải ASCII như biểu tượng cảm xúc hoặc chữ có dấu không?
Có. Các ký tự không phải ASCII trước tiên được chuyển thành byte UTF-8, sau đó mỗi byte được mã hóa phần trăm. Ví dụ, biểu tượng cảm xúc ☺ (U+1F600) trở thành %F0%9F%98%80. Các chữ có dấu như é (U+00E9) trở thành %C3%A9. Đây là cách tiếp cận chuẩn được định nghĩa trong RFC 3986.
Điểm khác biệt giữa công cụ này và mã hóa thực thể HTML là gì?
Mã hóa URL (mã hóa phần trăm) dành cho URL — nó chuyển đổi ký tự thành mã thập lục phân %XX. Mã hóa thực thể HTML chuyển đổi ký tự thành thực thể có tên hoặc số như &amp; cho & hoặc &#8364; cho €. Chúng phục vụ các mục đích hoàn toàn khác nhau và không thể thay thế cho nhau.
Tại sao một số URL hoạt động mà không cần mã hóa dù có chứa ký tự đặc biệt?
Các trình duyệt hiện đại tự động mã hóa URL khi bạn điều hướng đến chúng hoặc gửi biểu mẫu. Tuy nhiên, khi bạn xây dựng URL theo cách lập trình (trong mã, lời gọi API hoặc chuyển hướng phía máy chủ), bạn phải mã hóa thủ công vì máy chủ sẽ không làm điều đó cho bạn.
Có rủi ro mã hóa kép không?
Có. Nếu bạn mã hóa một URL đã được mã hóa, %20 sẽ thành %2520, điều này không chính xác. Luôn kiểm tra xem đầu vào của bạn đã được mã hóa chưa trước khi mã hóa lại. Máy tính này hiển thị đầu ra đã giải mã để bạn có thể xác minh kết quả chính xác.
Làm thế nào để xử lý URL đã mã hóa trong JavaScript?
Dùng decodeURIComponent() để giải mã và encodeURIComponent() để mã hóa từng giá trị riêng lẻ. Đối với URL đầy đủ, dùng decodeURI() và encodeURI() vốn giữ nguyên các ký tự cấu trúc URL (/, ?, #, v.v.). Không bao giờ dùng escape() hoặc unescape() — chúng đã bị loại bỏ và không xử lý Unicode đúng cách.

Khám Phá Thêm Công Cụ

Những công cụ mới được chọn lọc từ thư viện của chúng tôi.