Giải mã ký tự URL: %E1%BB%87 lại thành ệ

Trong văn bản có %E1%BB%87 thay vì ệ, hoặc %20 thay vì dấu cách? Đó là mã hóa URL, còn gọi là mã hóa phần trăm. Dán văn bản vào ô phía trên: Mojibuster đổi mã thành chữ thật ngay, không tải lên.

Hỗ trợ văn bản và các file sau:

  • CSV
  • TXT
  • JSON
  • XML
  • SRT
  • VTT
  • SMI
  • TSV
  • MD
  • HTML
  • SQL
  • LOG

Ví dụ file xuất từ Excel, bản sao cơ sở dữ liệu, phụ đề hoặc mã nguồn trang web.

Sửa lỗi

  1. Kéo file vào hoặc dán văn bản
  2. Tự động sửa
  3. Sao chép hoặc tải về
hoặc kéo file vào đây
  • Không tải lên. File được sửa ngay trong trình duyệt và không rời khỏi thiết bị của bạn.

  • Máy chủ tại EU. Mojibuster chạy trên máy chủ ở Phần Lan (EU), vì vậy Quy định chung về bảo vệ dữ liệu (GDPR) được áp dụng. Toàn văn GDPR (EUR-Lex, tiếng Anh)

Mã hóa URL hoạt động thế nào

Địa chỉ web chỉ cho phép một số ít ký tự: chữ không dấu, chữ số và vài dấu câu. Mọi thứ khác đều bị mã hóa. Chữ ệ trong UTF-8 gồm ba byte E1, BB và 87, nên thành %E1%BB%87. Dấu cách thành %20, hoặc + trong biểu mẫu.

Văn bản mã hóa URL trông như thế này, và đây là khi đã đọc lại được.

Đã mã hóa

Ph%E1%BB%9F b%C3%B2 H%C3%A0 N%E1%BB%99i

Đã giải mã

Phở bò Hà Nội

Các mã URL thường gặp

  • %C4%83 = ă, %C3%A2 = â, %C3%AA = ê, %C3%B4 = ô
  • %C6%A1 = ơ, %C6%B0 = ư, %C4%91 = đ, %C4%90 = Đ
  • %E1%BA%A1 = ạ, %E1%BA%A3 = ả, %E1%BA%BF = ế, %E1%BB%AF = ữ
  • %20 = dấu cách, %2F = /, %3F = ?, %26 = &, %25 = %

Chữ tiếng Việt có dấu thường mất hai hoặc ba byte. Chữ có thêm dấu thanh như ệ, ế, ạ thường bắt đầu bằng %E1%BA hoặc %E1%BB. Còn đ, ơ, ư bắt đầu bằng %C4 hoặc %C6. Nhìn thấy các đầu mã này là gần như chắc chắn đó là tiếng Việt mã hóa URL. Hệ thống cũ mã hóa theo Windows-1258, mỗi chữ một byte và dấu thanh tách riêng: Vi%EA%F2t thay vì Vi%E1%BB%87t. Mojibuster cũng nhận ra và đổi thành Việt.

Văn bản mã hóa URL từ đâu ra

  • Liên kết sao chép: trình duyệt hiển thị vi.wikipedia.org/wiki/Hà_Nội dễ đọc, nhưng khi sao chép thường ra H%C3%A0_N%E1%BB%99i.
  • Biểu mẫu và theo dõi: từ khóa tìm kiếm và tham số UTM được lưu dưới dạng mã trong nhật ký máy chủ và file xuất từ công cụ phân tích, ví dụ ?q=ph%E1%BB%9F.
  • Xuất dữ liệu và API: một số công cụ email marketing, webhook và API lưu giá trị đã mã hóa; khi đó file CSV chứa mã thay vì tên người.
  • Tên file: file tải về tên là Hoa%20don%20%C4%90%E1%BB%A9c.pdf khi máy chủ không giải mã tên.

Mã và ký tự lỗi cùng lúc

Đôi khi văn bản hỏng hai lần: Vi%C3%A1%C2%BB%E2%80%A1t là Việt được mã hóa URL, tức một chữ ệ bị đọc sai rồi mới bị mã hóa. Mojibuster giải mã trước, rồi sửa lỗi ký tự. Cuối cùng ra lại Việt. Về lỗi font của văn bản cũ, xem sửa lỗi font tiếng Việt.

Tùy chọn Chuyển cả mã đã được bật sẵn trên trang này. Nó cũng chuyển mã HTML (ệ), mã email (=E1=BB=87) và chuỗi thoát trong mã nguồn (\u1ec7). Các lỗi ký tự khác: mojibake là gì.

Tự giải mã trong Excel, JavaScript, Python và PHP

  • Excel: chỉ có hàm để mã hóa (ENCODEURL trong bản tiếng Anh), không có hàm giải mã. Dễ nhất: sao chép cột, dán vào đây rồi sao chép kết quả về. Xem thêm lỗi font trong Excel.
  • JavaScript: decodeURIComponent('Vi%E1%BB%87t') cho ra Việt.
  • Python: urllib.parse.unquote('Vi%E1%BB%87t'), hoặc unquote_plus cho dữ liệu biểu mẫu có + là dấu cách.
  • PHP: rawurldecode(), hoặc urldecode() cho dữ liệu biểu mẫu.

Câu hỏi thường gặp

%E1%BB%87 nghĩa là gì?

Đó là chữ ệ trong mã hóa URL: ba byte UTF-8 E1, BB và 87, mỗi byte có % đứng trước. Tương tự %E1%BA%A1 là ạ và %C4%91 là đ.

%20 nghĩa là gì?

Một dấu cách. Trong dữ liệu biểu mẫu người ta hay dùng + thay thế. Mojibuster giữ nguyên +, vì trong văn bản thường nó có thể là dấu cộng thật.

Liên kết của tôi có bị tải lên không?

Không. Việc chuyển đổi diễn ra hoàn toàn trong trình duyệt. Liên kết có token, địa chỉ email hay dữ liệu cá nhân không rời khỏi thiết bị của bạn.

Vì sao 100% không bị đổi?

Mojibuster chỉ chuyển những chuỗi cho ra ký tự đặc biệt thật. 100%, 50 % hay một %20 đứng riêng trong văn bản thường được giữ nguyên.

Hướng dẫn khác