Mã hóa
Punycode encode/decode
Mã hóa tên miền chứa ký tự Unicode (IDN) sang định dạng Punycode tương thích ASCII (xn--) và ngược lại.
The DNS system historically only supports ASCII characters, so domain names with Cyrillic, CJK, or other non-ASCII characters (IDN) are encoded as Punycode — an ASCII-compatible form prefixed with xn--. This tool encodes and decodes such domains.
How to use it
- Encode: enter a domain with Cyrillic or other Unicode characters (e.g. пример.рф) to get its ASCII form as xn--....
- Decode: paste a domain in xn--... form to see the original characters.
- Works on both a single domain label and a full multi-level domain name.
Common uses
- Checking what real domain is hiding behind a confusing xn--... string in an email or link.
- Registering or setting up DNS for a domain with national characters when the registrar requires an ASCII form.
- Spotting a homograph attack — a domain visually mimicking a known brand using characters from a different script.
Things to keep in mind
Visually similar characters from different scripts (like Cyrillic "а" and Latin "a") can form a domain that looks identical to a known brand — this is the basis of homograph phishing.
Not every browser shows decoded Unicode the same way: when a domain label mixes scripts, browsers often deliberately show the raw xn-- form as a warning sign.
Bài viết về công cụ này: Punycode: tên miền quốc tế hóa hoạt động thế nào trong DNS
Câu hỏi thường gặp
Punycode được dùng để làm gì?
Punycode mã hóa tên miền quốc tế hóa chứa ký tự ngoài ASCII (như münchen.de) thành dạng tương thích ASCII với tiền tố xn--, vì hệ thống DNS chỉ hỗ trợ nhãn ASCII.
Vì sao tôi nên cẩn thận với tên miền Punycode?
Punycode tạo điều kiện cho tấn công homograph, trong đó các ký tự giống nhau từ bảng chữ cái khác được dùng để đăng ký tên miền trông giống hệt một tên miền đáng tin cậy. Nếu một tên miền có tiền tố xn--, hãy giải mã tại đây để biết nó thực sự là gì.
Công cụ này chỉ hoạt động với tên miền đầy đủ thôi sao?
Bạn có thể mã hóa hoặc giải mã một nhãn đơn hoặc cả tên miền có dấu chấm — mỗi nhãn giữa các dấu chấm được chuyển đổi độc lập, và tiền tố xn-- chỉ được thêm vào nhãn thực sự chứa ký tự ngoài ASCII.
Làm sao nhận biết một liên kết đang dùng Punycode?
Tên miền đã mã hóa luôn có tiền tố xn-- trước mỗi nhãn chứa ký tự ngoài ASCII. Nếu thấy một tên miền bắt đầu bằng xn-- trên thanh địa chỉ hay trong email, đó là dấu hiệu của IDN — nên kiểm tra xem văn bản thực sự ẩn sau mã hóa đó là gì.
Mọi trình duyệt có hiển thị chữ Kirin trên thanh địa chỉ giống nhau không?
Không. Một số trình duyệt chỉ hiển thị Unicode đã giải mã nếu toàn bộ ký tự của tên miền thuộc cùng một bảng chữ cái, còn khi trộn lẫn bảng chữ cái (dấu hiệu của tấn công homograph), chúng cố tình hiển thị chuỗi xn-- thô thay vì ký tự gốc.