Công cụ URL Encode và Decode là gì?
Công cụ URL Encode và Decode chuyển đổi giữa văn bản thông thường và dạng biểu diễn percent-encoding. URL encode biểu diễn những ký tự cần chuyển đổi bằng các nhóm bắt đầu với dấu phần trăm; URL decode khôi phục biểu diễn đó về nội dung tương ứng. Nhu cầu thường gặp là chuẩn bị một giá trị tham số hoặc đọc lại chuỗi có nhiều nhóm như %20, %C3%A0.
Công cụ có ba phạm vi chọn ngay trên giao diện: “Tham Số” (mặc định, xử lý đầu vào như giá trị của một tham số), “URL đầy đủ” (giữ nguyên cấu trúc : / ? # & = nên https:// vẫn dùng được) và “Form (dấu +)” (dành cho dữ liệu biểu mẫu). Vì vậy, dán cả URL rồi encode ở phạm vi “Tham Số” sẽ chuyển đổi cả những dấu vốn dùng để tạo cấu trúc địa chỉ; muốn giữ cấu trúc thì chọn “URL đầy đủ”.
Từ “mã hóa” và “giải mã” ở đây nói về chuyển đổi biểu diễn, không phải bảo vệ dữ liệu bằng mật khẩu. Công cụ không tạo hash, không xác minh chữ ký và không khiến nội dung trở thành bí mật. Người có chuỗi đã encode thường có thể decode để đọc lại.
Bài viết giải thích cách hiểu đầu vào, đầu ra và các trường hợp dễ nhầm dựa trên Logic của công cụ. Kết quả của công cụ là một chuỗi đã chuyển đổi, không phải báo cáo xác nhận địa chỉ tồn tại, an toàn hoặc truy cập được.

Năm thuật ngữ cần hiểu khi URL encode và decode
Percent-encoding
Percent-encoding là cách biểu diễn một byte bằng dấu % và hai chữ số hệ thập lục phân, thường viết khái quát là %HH. Ví dụ, %20 biểu diễn byte của khoảng trắng thông thường. Đây là nền tảng để đọc kết quả công cụ. Điểm dễ nhầm là xem mỗi nhóm như một ký tự hoàn chỉnh: chữ có dấu có thể cần nhiều byte, nên tạo nhiều nhóm. Cách biểu diễn này cũng không có khóa bí mật như mã hóa bảo mật.
Thành phần URL
Thành phần URL là một phần của địa chỉ, chẳng hạn giá trị của tham số truy vấn, thay vì toàn bộ địa chỉ có đầy đủ dấu phân cách. Khi chuẩn bị dữ liệu tìm kiếm, phần cần encode thường là nội dung tìm kiếm. Ở phạm vi mặc định “Tham Số”, công cụ xử lý cả đầu vào theo cách dành cho một thành phần, nhưng không biết bạn đã chọn đúng phần hay chưa; phạm vi “URL đầy đủ” thì giữ nguyên cấu trúc địa chỉ. Vì thế, encode một giá trị và encode nguyên địa chỉ là hai mục tiêu khác nhau.
Ký tự dành riêng
Ký tự dành riêng là những ký tự có thể mang vai trò cấu trúc trong URL, tùy vị trí sử dụng. Dấu hỏi có thể mở phần truy vấn; dấu ampersand có thể phân cách các tham số. Nếu chúng thuộc nội dung một giá trị, encode giúp phân biệt nội dung với dấu phân cách. Tuy nhiên, không nên hiểu rằng mọi dấu câu đều được xử lý giống nhau: phạm vi “Tham Số” mã hóa cả dấu cấu trúc, còn phạm vi “URL đầy đủ” giữ nguyên chúng.
UTF-8
UTF-8 là cách biểu diễn ký tự Unicode bằng một hoặc nhiều byte. Trong luồng encode trên trình duyệt, các ký tự Unicode hợp lệ được biểu diễn bằng byte UTF-8 rồi chuyển thành những nhóm phần trăm tương ứng. Điều này giải thích vì sao chữ tiếng Việt có thể làm chuỗi đầu ra dài hơn. Nhiều nhóm nối tiếp nhau không tự động có nghĩa văn bản bị hỏng; điều quan trọng khi decode là các byte phải tạo thành dữ liệu UTF-8 hợp lệ.
Mã hóa nhiều lớp
Mã hóa nhiều lớp xảy ra khi chuỗi đã encode tiếp tục được encode. Dấu phần trăm của lớp trước lúc này trở thành %25, khiến biểu diễn có thêm một lớp bao ngoài. Công cụ không tự xác định số lớp hoặc liên tục giải mã đến khi hết dấu phần trăm. Người dùng cần biết dữ liệu ở giai đoạn nào, bởi một nhóm %20 đôi khi chính là nội dung cần giữ, chứ không phải khoảng trắng cần khôi phục ngay.

Đầu vào và đầu ra cần được hiểu như thế nào?
Chuỗi nào có thể đưa vào công cụ?
Đầu vào là chuỗi văn bản, không có đơn vị đo. Chuỗi có thể chứa tiếng Việt, chữ số, khoảng trắng, dấu câu, một URL hoặc các nhóm percent-encoding. Việc ô nhập nhận một địa chỉ không có nghĩa công cụ sẽ kiểm tra địa chỉ đó; cách xử lý vẫn dựa trên toàn bộ nội dung đã nhập và phạm vi bạn đã chọn.
Công cụ tính trực tiếp khi bạn gõ: chuỗi rỗng khác chuỗi chỉ chứa khoảng trắng. Khi không có ký tự nào, ô kết quả cũng trống và dòng trạng thái hiện “Nhập nội dung để xem kết quả.”. Nếu có một khoảng trắng thông thường, thao tác vẫn được thực hiện; ở phạm vi “Tham Số”, encode cho %20. Không có bước tự động cắt khoảng trắng ở đầu hoặc cuối.
Decode trên trình duyệt cần các nhóm phần trăm đúng định dạng và dữ liệu UTF-8 hợp lệ. Công cụ không có chức năng được xác nhận để đoán ký tự bị thiếu hoặc tự sửa chuỗi sai. Với văn bản Unicode không hợp lệ, thao tác encode cũng có thể phát sinh lỗi.
Cách đọc kết quả và trạng thái chưa có kết quả
Ô đầu ra chỉ đọc, dùng để hiển thị chuỗi sau chuyển đổi. Công cụ tính trực tiếp khi bạn gõ hoặc đổi chế độ/phạm vi: đầu vào rỗng thì ô kết quả trống, decode lỗi thì ô kết quả cũng trống kèm thông báo lỗi ngay dưới ô nhập. Vì vậy, ô kết quả không bao giờ giữ lại kết quả của lần chuyển đổi trước khi đầu vào hiện tại đã thay đổi; dòng trạng thái dưới ô kết quả (số ký tự đầu vào/kết quả và số nhóm %HH) cho biết kết quả có tương ứng với đầu vào hiện tại hay không.
Nút “Làm mới” xóa ô nhập, đưa chế độ về “Mã hóa (Encode)” và phạm vi về “Tham Số”. Nút “Sao chép kết quả” sao chép nội dung đầu ra và hiện thông báo “Đã sao chép!”; nút “Đảo chiều” đưa kết quả hiện tại thành đầu vào và đổi chiều mã hóa/giải mã; nút “Tải txt” tải kết quả về file url-encode-decode.txt. Khi chưa có kết quả, các nút này hiện thông báo tương ứng thay vì thực hiện thao tác rỗng. Ba nút ví dụ mẫu (tìm kiếm tiếng Việt, C++, URL đầy đủ) tự đặt đúng chế độ và phạm vi cho từng ví dụ.

Quy tắc chuyển đổi ký tự, khoảng trắng và dấu cộng
Ký tự nào được giữ nguyên hoặc chuyển thành %HH?
Ở phạm vi “Tham Số”, encode giữ nguyên chữ cái Latin không dấu, chữ số và các ký tự - _ . ! ~ * ' ( ). Những ký tự khác được chuyển đổi theo quy tắc của hàm encode thành phần URL. Ở phạm vi “URL đầy đủ”, encode giữ thêm cả các dấu tạo cấu trúc như : / ? # @ ! $ & ' ( ) * + , ; =, nên địa chỉ vẫn giữ dạng dùng được. Với Unicode hợp lệ, mỗi byte UTF-8 cần chuyển đổi được viết thành một nhóm phần trăm và hai chữ số hệ thập lục phân.
Các dấu tạo cấu trúc như dấu hai chấm, gạch chéo, dấu hỏi, dấu bằng và ampersand bị encode nếu có trong đầu vào ở phạm vi “Tham Số” và “Form (dấu +)”, nhưng được giữ nguyên ở phạm vi “URL đầy đủ”. Công cụ không tự đoán phạm vi giúp bạn: chọn “URL đầy đủ” khi đầu vào là một địa chỉ cần giữ cấu trúc, chọn “Tham Số” khi đầu vào là giá trị của một tham số.
Vì sao dấu cộng và khoảng trắng dễ gây nhầm?
Khi encode ở phạm vi “Tham Số”, khoảng trắng thông thường thành %20, dấu cộng thành %2B, còn dấu phần trăm thành %25. Đây là ba chuyển đổi riêng, không nên xem dấu cộng và khoảng trắng như cùng một ký tự trong mọi ngữ cảnh.
Riêng về dấu cộng khi decode, chỉ phạm vi “Form (dấu +)” thay dấu cộng trực tiếp bằng khoảng trắng trước khi giải mã — quy tắc này phù hợp với dữ liệu biểu mẫu, nhưng có thể làm đổi nội dung chứa dấu cộng thật. Ở phạm vi “Tham Số” và “URL đầy đủ”, dấu cộng trực tiếp được giữ nguyên. Ngược lại, ở cả ba phạm vi, %2B đều được khôi phục thành dấu cộng. Khi encode, chỉ phạm vi “Form (dấu +)” đổi khoảng trắng thành dấu cộng; hai phạm vi còn lại dùng %20.
Một thao tác chỉ chuyển đổi một lớp
Mỗi lần decode chỉ gỡ một lớp percent-encoding. Nếu một lần xử lý khôi phục dấu phần trăm và tạo ra chuỗi trông như %20, chuỗi vừa xuất hiện không được giải mã tiếp trong cùng lần đó. Mọi thao tác đều đọc ô đầu vào, không tự lấy ô kết quả làm dữ liệu cho lần kế tiếp.
Khi decode gặp định dạng sai hoặc dữ liệu UTF-8 không hợp lệ, công cụ hiện thông báo lỗi và để ô kết quả trống, không giữ kết quả cũ. Encode không có nhánh bắt lỗi riêng tương tự cho trường hợp Unicode chứa đơn vị mã surrogate đơn lẻ không hợp lệ. Đây là giới hạn xử lý lỗi, không phải dấu hiệu công cụ đã sửa được dữ liệu.

Ví dụ URL encode và decode trong các tình huống thực tế
Các ví dụ sau được tính theo logic của công cụ JavaScript và quy tắc của các hàm chuẩn. Đầu vào đều là dữ liệu giả định, không có đơn vị đo; các ví dụ văn bản giả định Unicode hợp lệ.
Giá trị tìm kiếm có chữ tiếng Việt
Giả sử bạn muốn biểu diễn giá trị tìm kiếm cà phê để đưa vào một tham số. Encode trên trình duyệt cho c%C3%A0%20ph%C3%AA. Các chữ c, p, h được giữ nguyên; khoảng trắng thành %20.
Chữ à có các byte UTF-8 C3 A0 nên thành %C3%A0; chữ ê có các byte C3 AA nên thành %C3%AA. Kết quả chỉ là giá trị đã encode, chưa bao gồm tên tham số hoặc phần còn lại của địa chỉ. Decode chuỗi này theo cùng luồng khôi phục nội dung tiếng Việt ban đầu.
Nội dung có dấu cộng cần giữ nguyên
Giả sử nội dung cần đọc là tên ngôn ngữ C++. Ở phạm vi mặc định “Tham Số” và phạm vi “URL đầy đủ”, đưa trực tiếp chuỗi đó vào decode vẫn giữ nguyên C++, vì hai phạm vi này không đổi dấu cộng thành khoảng trắng. Chỉ ở phạm vi “Form (dấu +)”, hai dấu cộng mới bị đổi thành hai khoảng trắng, vì phạm vi này hiểu dấu cộng là khoảng trắng của dữ liệu biểu mẫu.
Nếu đầu vào là C%2B%2B, decode ở cả ba phạm vi đều cho C++, vì hai nhóm %2B khôi phục đúng hai dấu cộng. Ví dụ cho thấy cần phân biệt nội dung nguyên bản với biểu diễn đã encode của nội dung đó, và cần chọn đúng phạm vi trước khi decode.
Một URL đầy đủ và chuỗi đã encode nhiều lớp
Với địa chỉ minh họa https://example.com/?q=a b&n=1, ở phạm vi “Tham Số”, encode toàn bộ chuỗi cho https%3A%2F%2Fexample.com%2F%3Fq%3Da%20b%26n%3D1: dấu hai chấm, gạch chéo và các dấu phân cách tham số đều đã chuyển đổi, phù hợp khi cần biểu diễn nguyên địa chỉ như một giá trị. Ở phạm vi “URL đầy đủ”, cùng địa chỉ cho https://example.com/?q=a%20b&n=1: cấu trúc được giữ nguyên, chỉ khoảng trắng và ký tự có dấu bị mã hóa, nên kết quả vẫn dùng được như một địa chỉ. Dù ở phạm vi nào, cũng không nên máy móc thay chuỗi đã encode toàn bộ ở phạm vi “Tham Số” cho URL gốc để truy cập.
Ở ví dụ nhiều lớp, encode đầu vào a%20b cho a%2520b. Nếu lấy kết quả ấy làm đầu vào decode đúng một lần, đầu ra là a%20b, chưa phải a b. Việc có nên decode tiếp phụ thuộc mục đích dữ liệu: chuỗi phần trăm có thể là biểu diễn trung gian hoặc nội dung cần giữ nguyên. Khi decode mà kết quả vẫn còn nhóm %HH hợp lệ, nút “Giải mã thêm 1 lớp” sẽ hiện ra; nhấn nút này đưa kết quả làm đầu vào và giải mã thêm một lớp, thay vì phải sao chép thủ công.
Chuỗi phần trăm không hợp lệ
Giả sử đầu vào decode là %ZZ. Vì Z không phải chữ số hệ thập lục phân, công cụ hiện thông báo lỗi ngay dưới ô nhập và ô kết quả trống, đồng thời dòng trạng thái hiện “Chưa có kết quả vì đầu vào không hợp lệ.”. Nội dung trống này không phải bản khôi phục thành công của %ZZ; muốn giữ dấu % thật, hãy viết thành %25.

Khi nào nên dùng công cụ URL Encode và Decode?
Chuẩn bị giá trị tham số
Công cụ hữu ích khi cần chuẩn bị một giá trị có khoảng trắng, tiếng Việt hoặc dấu có thể bị hiểu là dấu phân cách. Ví dụ, nội dung tìm kiếm có ampersand cần được biểu diễn như một phần của giá trị, thay vì vô tình tạo ranh giới giữa các tham số.
Điều quan trọng là chọn đúng phần dữ liệu muốn chuyển đổi. Nếu nhu cầu là encode nội dung tìm kiếm, hãy xem đó là giá trị riêng, không đồng nhất với toàn bộ địa chỉ. Công cụ không tự ghép URL từ các thành phần, cũng không xác định hệ thống đích muốn nhận dạng biểu diễn nào.
Khi tìm hiểu cách xử lý, nên dùng chuỗi giả định hoặc đã loại bỏ thông tin nhạy cảm. Điều này giúp tập trung vào khác biệt giữa các ký tự mà không cần đưa dữ liệu cá nhân vào quá trình thử đối chiếu.
Đọc và đối chiếu dữ liệu đã encode
Decode có thể hỗ trợ đọc một giá trị percent-encoded được lấy từ đường dẫn, phần truy vấn hoặc dữ liệu chia sẻ. Khi tách được phần cần đọc, bạn có thể đối chiếu trước và sau chuyển đổi để nhận ra khoảng trắng, dấu cộng hay lớp encode thừa.
Tuy nhiên, nội dung trở nên dễ đọc không chứng minh nguồn dữ liệu đáng tin. Công cụ không có chức năng được xác nhận để gửi yêu cầu tới địa chỉ nhập vào, kiểm tra tham số được hệ thống đích chấp nhận hoặc chứng minh đường dẫn còn hoạt động. Giá trị sử dụng ở đây là quan sát biểu diễn chuỗi, không phải kiểm tra hành vi của một dịch vụ.

Xử lý trên trình duyệt theo từng phạm vi và mã hóa Base64
Khác biệt giữa ba phạm vi của công cụ
Bản mới chỉ có một luồng xử lý duy nhất, chạy hoàn toàn trên trình duyệt và không gửi dữ liệu lên máy chủ, nhưng kết quả khác nhau theo phạm vi bạn chọn:
| Tình huống | Tham Số | URL đầy đủ | Form (dấu +) |
|---|---|---|---|
Decode a+b |
Giữ a+b |
Giữ a+b |
Cho a b |
| Encode khoảng trắng | Cho %20 |
Cho %20 |
Cho + |
Encode dấu cấu trúc : / ? & = |
Chuyển thành percent-encoding | Giữ nguyên | Chuyển thành percent-encoding |
| Decode byte không tạo UTF-8 hợp lệ | Hiện lỗi, ô kết quả trống | Hiện lỗi, ô kết quả trống | Hiện lỗi, ô kết quả trống |
Ở cả ba phạm vi, decode gặp byte không tạo UTF-8 hợp lệ đều hiện thông báo lỗi và để ô kết quả trống; không còn luồng dự phòng nào cho kết quả khác.
Khi JavaScript bị tắt, công cụ không hoạt động vì bản mới không còn biểu mẫu dự phòng gửi lên máy chủ.
URL encode không phải Base64 hoặc mã hóa bảo mật
Về kiến thức nền, percent-encoding biểu diễn byte bằng nhóm %HH, còn Base64 biểu diễn dữ liệu bằng một bảng ký tự khác. Hai cách có quy tắc và mục đích sử dụng khác nhau; không thể coi decode URL là thao tác đọc mọi chuỗi Base64.
Nếu cần phân biệt dạng dữ liệu, công cụ mã hóa và giải mã Base64 thuộc một chủ đề chuyển đổi khác, không phải tính năng tích hợp được xác nhận của công cụ này. Cả hai cách biểu diễn đều không mặc nhiên tạo tính bí mật, không thay thế mã hóa bằng khóa và không xác minh nguồn gốc nội dung.

Giới hạn và lưu ý trước khi sử dụng kết quả
Không dùng URL encode để bảo vệ bí mật
Chuỗi encode vẫn có thể được khôi phục bằng quy tắc công khai. Vì vậy, không nên dùng percent-encoding để che mật khẩu, thông tin tài khoản hoặc dữ liệu cá nhân. Việc văn bản trông khó đọc hơn không có nghĩa người khác không thể đọc lại.
Tương tự, đầu ra không chứng minh một URL hợp lệ, an toàn hay truy cập được. Một chuỗi có thể được chuyển đổi đúng về mặt biểu diễn nhưng vẫn chứa địa chỉ sai, tham số không phù hợp hoặc nội dung không đáng tin.
Những điều chưa thể xác minh từ công cụ
Bản mới của công cụ chạy hoàn toàn trên trình duyệt: mã không gửi đầu vào lên máy chủ và không có biểu mẫu dự phòng nào. Tuy vậy, chính sách lưu trữ, nhật ký và hoạt động của các thành phần khác trên toàn trang vẫn chưa được xác minh từ riêng công cụ này. Việc triển khai thực tế và khả năng sao chép trong từng môi trường cũng chưa được kiểm chứng.
Mã không đặt trực tiếp một ngưỡng độ dài đầu vào, nhưng điều đó không đồng nghĩa xử lý không giới hạn. Trình duyệt và tài nguyên máy vẫn có thể ảnh hưởng khi đầu vào rất dài. Với sao chép, công cụ có cách dự phòng khi cách chính thất bại, nhưng thông báo “Đã sao chép!” vẫn không bảo đảm tuyệt đối trong mọi môi trường trình duyệt.
Trước khi sử dụng kết quả, hãy kiểm tra ba điều: đúng thành phần cần chuyển đổi, đúng số lớp mã hóa và đúng ý nghĩa của dấu cộng. Đây là những yếu tố quyết định chuỗi có còn phản ánh nội dung bạn muốn hay không.

Câu hỏi thường gặp
Tôi nên encode cả URL hay chỉ giá trị của một tham số?
Thông thường, nếu đang chuẩn bị nội dung cho một tham số, bạn chỉ nên encode giá trị đó. Encode cả URL phù hợp với mục tiêu khác: biểu diễn nguyên địa chỉ như dữ liệu nằm bên trong một giá trị — đó chính là cách phạm vi “Tham Số” xử lý. Nếu muốn giữ cấu trúc địa chỉ để dùng tiếp, hãy chọn phạm vi “URL đầy đủ” thay vì encode toàn chuỗi ở phạm vi “Tham Số”. Vì vậy, cần xác định kết quả sẽ được đặt vào đâu; đừng dùng chuỗi đã encode toàn bộ thay cho địa chỉ truy cập chỉ vì nó được tạo thành công.
Vì sao chuỗi C++ bị đổi khi decode và làm sao giữ dấu cộng?
Chỉ ở phạm vi “Form (dấu +)”, các dấu cộng trực tiếp mới bị đổi thành khoảng trắng trước khi decode. Do đó, ở phạm vi này, đầu vào C++ không còn giữ hai dấu cộng sau thao tác; ở phạm vi “Tham Số” và “URL đầy đủ”, C++ được giữ nguyên. Muốn khôi phục dấu cộng từ dạng đã encode, biểu diễn tương ứng là %2B, nên C%2B%2B sẽ cho C++. Nếu nội dung đã là văn bản nguyên bản và bạn chỉ muốn giữ nó, có thể không cần decode; trước hết hãy xác định nó thực sự đã được encode hay chưa.
Khoảng trắng nên được biểu diễn bằng %20 hay dấu cộng?
Công cụ encode khoảng trắng thông thường thành %20. Dấu cộng có thể được dùng để biểu diễn khoảng trắng trong quy ước dữ liệu biểu mẫu, nhưng không mang nghĩa đó trong mọi tình huống URL. Chỉ phạm vi “Form (dấu +)” của công cụ áp dụng cách hiểu dấu cộng là khoảng trắng khi decode; phạm vi “Tham Số” và “URL đầy đủ” giữ nguyên dấu cộng. Vì vậy, khi trao đổi dữ liệu với hệ thống khác, nên căn cứ định dạng hệ thống đó yêu cầu, thay vì tự thay mọi %20 bằng dấu cộng.
Vì sao công cụ báo lỗi decode và ô kết quả trống?
Vì bản mới không giữ kết quả cũ khi gặp lỗi: decode sai định dạng sẽ hiện thông báo lỗi ngay dưới ô nhập, ô kết quả trống và dòng trạng thái hiện “Chưa có kết quả vì đầu vào không hợp lệ.”. Một trạng thái khác là ô đầu vào rỗng: không có lỗi, ô kết quả cũng trống và dòng trạng thái hiện “Nhập nội dung để xem kết quả.”. Bạn nên phân biệt hai trạng thái này trước khi sao chép, đặc biệt nếu đang đối chiếu nhiều chuỗi liên tiếp.
Tại sao decode một lần vẫn còn các nhóm %HH?
Chuỗi có thể đã được encode nhiều lớp, hoặc các nhóm phần trăm chính là nội dung được lưu có chủ ý. Một lần decode chỉ xử lý lớp hiện có, không tiếp tục giải mã những nhóm vừa được khôi phục. Chẳng hạn, a%2520b trở thành a%20b sau một lần. Chỉ nên xử lý tiếp khi biết dữ liệu cần bỏ thêm lớp; việc lặp vô điều kiện có thể thay đổi nội dung vốn phải giữ nguyên dưới dạng chữ và dấu phần trăm. Khi decode mà kết quả vẫn còn nhóm %HH hợp lệ, nút “Giải mã thêm 1 lớp” sẽ hiện ra để giải mã thêm đúng một lớp mà không cần sao chép thủ công.
Khi tắt JavaScript, tôi có chọn decode trên giao diện được không?
Không. Bản mới của công cụ chạy hoàn toàn bằng JavaScript trên trình duyệt và không còn biểu mẫu dự phòng gửi lên máy chủ, nên khi JavaScript bị tắt, các nút chuyển đổi sẽ không hoạt động. Vì thế, cần bật JavaScript để dùng công cụ này.
Tôi có nên đưa mật khẩu hoặc dữ liệu cá nhân vào công cụ không?
Không nên đưa dữ liệu nhạy cảm vào chỉ để tìm hiểu hoặc thử chuyển đổi; hãy dùng nội dung giả định hay đã loại bỏ thông tin riêng. Percent-encoding không bảo vệ bí mật, và chính sách truyền, lưu dữ liệu của toàn trang chưa được xác minh từ công cụ. Riêng bản thân công cụ mới không gửi nội dung nhập lên máy chủ — mọi chuyển đổi chạy ngay trên trình duyệt của bạn. Nếu nhu cầu liên quan dữ liệu thật, bạn cần đánh giá môi trường và chính sách xử lý dữ liệu, không dựa vào vẻ ngoài khó đọc của chuỗi encode.
Tài liệu tham khảo
- RFC 3986: Uniform Resource Identifier (URI): Generic Syntax — T. Berners-Lee, R. Fielding, L. Masinter, IETF — https://www.rfc-editor.org/rfc/rfc3986
- encodeURI() — MDN Web Docs — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI
- encodeURIComponent() — MDN Web Docs — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
- URL Standard (percent-encoding và application/x-www-form-urlencoded) — WHATWG — https://url.spec.whatwg.org/
