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.
Đang tải máy tính...
Công cụ này có hữu ích với bạn không?
Mã hóa/Giải mã URL là gì?
Công cụ Mã hóa/Giải mã URL chuyển đổi giữa văn bản thông thường và định dạng mã hóa phần trăm an toàn cho URL. Cần thiết cho các nhà phát triển web làm việc với tham số truy vấn, yêu cầu API và định tuyến URL.
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:
Nhập hoặc dán văn bản/URL bạn muốn mã hóa hoặc giải mã.
Chọn chế độ Mã hóa hoặc Giải mã.
Bấm nút Chuyển đổi.
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ã ngay lập tức
Xử lý mọi ký tự đặc biệt
Hoạt động hoàn toàn trong trình duyệt
Miễn phí, không cần đăng ký
Mẹo Chuyên Nghiệp
Luôn mã hóa các tham số URL do người dùng tạo
Dùng encodeURIComponent() cho tham số truy vấn trong JavaScript
Giải mã URL trước khi hiển thị cho người dùng để dễ đọc
Những Lỗi Thường Gặp Cần Tránh
Vô tình mã hóa URL hai lần
Dùng sai loại mã hóa cho sai ngữ cảnh (URL và HTML)
Quên rằng + biểu thị dấu cách trong chuỗi truy vấn nhưng không phải trong đoạn đường dẫn
Các Thuật Ngữ Chính Được Giải Thích
Mã hóa URL: Mã hóa phần trăm cho URL an toàn
Mã hóa phần trăm: % theo sau là mã thập lục phân
Chuỗi truy vấn: Các tham số sau ? trong URL
Ký tự dành riêng: Ký tự có ý nghĩa đặc biệt trong URL
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ư & cho & hoặc < 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ư & cho & hoặc € 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.