Chọn ngôn ngữ

Công cụ mã hóa URL

Mã hóa văn bản thành định dạng URL an toàn chuẩn RFC 3986. Hỗ trợ mã hóa toàn bộ liên kết hoặc từng thành phần riêng lẻ với tùy chọn khoảng trắng.

Mehmet Demiray Xuất bản Cập nhật
Chia sẻ
Thành phần mã hóa các ký tự đặc biệt; Toàn bộ giữ nguyên cấu trúc URL

Tại sao URL cần được mã hóa?

Theo tiêu chuẩn RFC 3986, các địa chỉ web chỉ có thể được truyền tải qua internet bằng bảng mã ASCII. Khi dữ liệu của bạn chứa các ký tự nằm ngoài bảng mã này hoặc chứa các ký tự có ý nghĩa đặc biệt trong cấu trúc liên kết, bạn cần sử dụng công cụ Mã hóa URL để chuyển đổi chúng thành định dạng an toàn. Các ký tự trong URL được chia thành hai nhóm chính là ký tự dành riêng và ký tự không dành riêng. Nhóm ký tự dành riêng bao gồm các dấu như dấu chấm hỏi, dấu và, dấu bằng, dấu gạch chéo và dấu thăng. Chúng đóng vai trò phân chia cấu trúc của một đường dẫn. Nếu bạn muốn truyền một giá trị văn bản chứa dấu và, ví dụ như tên công ty "Mẹ & Bé", ký tự này sẽ làm hỏng chuỗi truy vấn vì trình duyệt hiểu nhầm đó là dấu phân cách giữa hai tham số. Thay vào đó, nó phải được chuyển thành định dạng phần trăm. Ngược lại, nhóm ký tự không dành riêng bao gồm chữ cái tiếng Anh, chữ số và một vài dấu câu cơ bản. Những ký tự này luôn an toàn và không bao giờ bị thay đổi khi đi qua bộ mã hóa. Quá trình chuyển đổi này thường được gọi là mã hóa phần trăm, và bạn có thể dễ dàng khôi phục lại văn bản gốc thông qua công cụ giải mã URL.

Phân biệt mã hóa toàn bộ URL và mã hóa thành phần

Khi sử dụng công cụ Mã hóa URL, bạn sẽ thấy hai chế độ hoạt động chính là mã hóa toàn bộ đường dẫn và mã hóa từng thành phần. Việc chọn sai chế độ có thể khiến liên kết của bạn không thể truy cập được. Chế độ mã hóa toàn bộ tương đương với hàm encodeURI trong lập trình, được thiết kế để xử lý một đường dẫn hoàn chỉnh. Chế độ này sẽ giữ nguyên các ký tự có chức năng điều hướng như dấu hai chấm, dấu gạch chéo hay dấu bằng. Mục đích của nó là biến một liên kết chứa ký tự lạ thành một liên kết hợp lệ mà trình duyệt vẫn hiểu được cấu trúc gốc. Chế độ mã hóa thành phần tương đương với hàm encodeURIComponent có tác dụng mạnh hơn. Nó sẽ biến đổi gần như toàn bộ các ký tự đặc biệt, bao gồm cả dấu gạch chéo thành %2F hay dấu bằng thành %3D. Chế độ này đặc biệt quan trọng khi bạn cần chèn một đường dẫn hoặc một đoạn văn bản phức tạp vào bên trong một tham số truy vấn. Ví dụ, nếu bạn đang tạo mã UTM cho chiến dịch marketing và tham số chiến dịch chứa đoạn văn bản có dấu cách, bạn bắt buộc phải dùng chế độ mã hóa thành phần. Đối với các chiến dịch quảng cáo in ấn, sau khi có được liên kết an toàn, các chuyên viên marketing thường kết hợp thêm trình tạo mã QR để người dùng dễ dàng quét bằng điện thoại.

Xử lý khoảng trắng: Chọn %20 hay dấu cộng?

Khoảng trắng là một trong những ký tự phổ biến nhất cần được xử lý khi làm việc với liên kết web. Công cụ Mã hóa URL cung cấp hai cách để biến đổi khoảng trắng là chuyển thành chuỗi %20 hoặc chuyển thành dấu cộng. Sự khác biệt này bắt nguồn từ lịch sử phát triển của các tiêu chuẩn web. Chuỗi %20 là cách biểu diễn chuẩn xác nhất của khoảng trắng theo quy tắc mã hóa phần trăm. Bạn nên sử dụng định dạng này cho phần đường dẫn chính của liên kết. Ví dụ, một thư mục có tên "bao cao" sẽ trở thành bao%20cao. Trong khi đó, dấu cộng xuất phát từ chuẩn application/x-www-form-urlencoded được sử dụng khi người dùng gửi dữ liệu qua các biểu mẫu trên trang web. Các dữ liệu nằm sau dấu chấm hỏi trong liên kết thường ưu tiên dùng dấu cộng để biểu diễn khoảng trắng giúp đường dẫn ngắn gọn và dễ đọc hơn. Nếu bạn đang xây dựng các chuỗi truy vấn API hoặc tham số tìm kiếm, tùy chọn biến khoảng trắng thành dấu cộng sẽ rất hữu ích. Tùy thuộc vào hệ thống máy chủ tiếp nhận dữ liệu, việc chọn sai định dạng khoảng trắng đôi khi sẽ gây ra lỗi xử lý, do đó hãy kiểm tra kỹ tài liệu kỹ thuật của nền tảng bạn đang làm việc.

Ký tự Unicode và tiếng Việt trong liên kết

Bảng mã ASCII bao gồm 128 ký tự cơ bản và không thể hiển thị được các ngôn ngữ có dấu như tiếng Việt, tiếng Nhật hay các biểu tượng cảm xúc. Để giải quyết vấn đề này, tiêu chuẩn hiện đại yêu cầu các ký tự Unicode phải được chuyển đổi sang định dạng byte UTF-8 trước, sau đó mới áp dụng quy tắc mã hóa phần trăm. Khi bạn nhập văn bản tiếng Việt vào công cụ Mã hóa URL, mỗi chữ cái có dấu sẽ được biến đổi thành một chuỗi gồm nhiều phần tử byte. Ví dụ, chữ đ thường được chuyển thành chuỗi %C4%91, hoặc chữ á trở thành %C3%A1. Một biểu tượng cảm xúc đơn giản cũng có thể tạo ra một chuỗi dài mã hóa gồm 4 khối byte. Việc mã hóa đúng chuẩn UTF-8 đảm bảo rằng các đường dẫn chứa từ khóa tiếng Việt sẽ được các công cụ tìm kiếm và trình duyệt hiểu chính xác, mang lại lợi ích lớn cho công tác tối ưu hóa công cụ tìm kiếm. Nếu bạn đang làm việc với các hệ thống cũ hoặc cần xử lý dữ liệu nhị phân không phải dạng văn bản thuần túy, bạn có thể tìm hiểu thêm về phương pháp mã hóa Base64 để có góc nhìn toàn diện hơn về cách dữ liệu được truyền tải an toàn.

Các câu hỏi thường gặp về mã hóa URL

Dưới đây là một số vấn đề phổ biến mà các lập trình viên thường gặp khi làm việc với công cụ Mã hóa URL.

Mã hóa phần trăm là gì? Đây là cơ chế thay thế các ký tự không an toàn trong đường dẫn web bằng một dấu phần trăm theo sau là hai chữ số thập lục phân thể hiện giá trị byte của ký tự đó.

Tại sao dấu và lại làm hỏng chuỗi truy vấn của tôi? Dấu và được quy ước là ký tự phân cách giữa các cặp khóa và giá trị trong chuỗi truy vấn. Nếu bản thân giá trị của bạn có chứa dấu này, máy chủ sẽ hiểu nhầm phần phía sau là một tham số mới. Bạn phải mã hóa nó thành %26 để hệ thống đọc đúng chuỗi dữ liệu gốc.

Tôi nên dùng chế độ nào cho giá trị của tham số truy vấn? Luôn sử dụng chế độ mã hóa thành phần cho các giá trị nằm bên trong chuỗi truy vấn. Chế độ này đảm bảo mọi ký tự đặc biệt, bao gồm cả dấu bằng hay dấu gạch chéo, đều được chuyển đổi an toàn mà không can thiệp vào cấu trúc tổng thể của đường dẫn.

Biểu tượng cảm xúc được mã hóa như thế nào? Các biểu tượng cảm xúc được xử lý theo chuẩn UTF-8, tạo ra các chuỗi mã hóa dài. Trình duyệt sẽ tự động giải mã các chuỗi này để hiển thị đúng biểu tượng gốc cho người dùng cuối.

Những câu chúng tôi trả lời nhiều nhất.

Mã hóa phần trăm (percent encoding) là gì?

Đây là cơ chế thay thế các ký tự không hợp lệ trong URL bằng ký hiệu % kèm theo mã hex tương ứng. Điều này đảm bảo trình duyệt và máy chủ web hiểu đúng địa chỉ mà không bị nhầm lẫn với các ký tự điều hướng. Nếu bạn cần khôi phục lại văn bản gốc, hãy dùng công cụ giải mã URL của chúng tôi.

Khi nào tôi nên dùng chế độ mã hóa toàn bộ URL thay vì từng phần?

Chế độ toàn bộ URL giữ nguyên các ký tự có ý nghĩa cấu trúc mạng như /, ?, & và =. Bạn nên dùng chế độ này khi muốn xử lý một đường dẫn hoàn chỉnh để dán vào trình duyệt. Ngược lại, nếu bạn chỉ cần định dạng giá trị của một tham số cụ thể như thẻ UTM trong marketing, hãy chọn mã hóa từng phần (component).

Tại sao ký tự & lại làm hỏng chuỗi truy vấn của tôi?

Trong cấu trúc URL, dấu & được dùng để ngăn cách giữa các tham số khác nhau. Nếu giá trị văn bản của bạn chứa dấu & nhưng không được công cụ Mã hóa URL xử lý thành %26, trình duyệt sẽ hiểu nhầm đó là điểm bắt đầu của một tham số mới. Điều này thường gây ra lỗi hệ thống hoặc làm mất dữ liệu khi máy chủ tiếp nhận.

Khoảng trắng nên được chuyển thành %20 hay dấu +?

Theo tiêu chuẩn chung, khoảng trắng thường biến thành %20 để đảm bảo tính tương thích cao nhất. Trong các dữ liệu gửi từ biểu mẫu (form) trên web, khoảng trắng lại được quy ước thành dấu +. Tùy vào yêu cầu của máy chủ hoặc nền tảng bạn đang làm việc, bạn có thể tích chọn tùy chọn xử lý khoảng trắng phù hợp ngay trên công cụ.

Công cụ này xử lý chữ tiếng Việt có dấu và biểu tượng cảm xúc (emoji) như thế nào?

Hệ thống sử dụng chuẩn ký tự UTF-8 để chuyển đổi văn bản. Một chữ cái tiếng Việt có dấu hoặc một emoji sẽ được dịch thành một chuỗi gồm nhiều byte. Ví dụ, chữ ê sẽ biến thành %C3%AA. Việc này giúp các đường dẫn chứa ký tự quốc tế hoạt động trơn tru trên mọi thiết bị và nền tảng.

Tôi có thể tạo mã QR từ URL sau khi đã mã hóa không?

Bạn hoàn toàn có thể làm điều này. Sau khi có được chuỗi liên kết an toàn từ công cụ Mã hóa URL, bạn chỉ cần sao chép văn bản đầu ra và dán vào trình tạo mã QR. Phương pháp này rất hữu ích cho các chiến dịch tiếp thị cần chia sẻ liên kết phức tạp đến người dùng di động.