Cách dùng công cụ chuyển đổi Punycode
- Dán một hoặc nhiều tên miền, địa chỉ email hay URL, mỗi dòng một mục. Khung bắt đầu với vài ví dụ để bạn thấy cách hoạt động.
- Kết quả hiện ngay, từng dòng một. Chế độ Tự động xem xét từng dòng: nếu có nhãn
xn--thì giải mã về Unicode, nếu không thì mã hóa sang Punycode. Chọn Sang Punycode hoặc Sang Unicode để ép một chiều. - Bấm Sao chép cạnh một kết quả, Chép tất cả kết quả cho cả danh sách, hoặc Tải về .txt.
Việc chuyển đổi chạy trong trình duyệt và không có gì được gửi đến máy chủ, nên bạn có thể yên tâm dán danh sách các tên miền đang làm việc. Dòng không chuyển được sẽ được đánh dấu kèm lý do, ví dụ nhãn bị trống hoặc nhãn không phải Punycode hợp lệ.
Punycode là gì và vì sao tên miền dùng nó?
Hệ thống tên miền được thiết kế cho các chữ cái từ a đến z, chữ số từ 0 đến 9 và dấu gạch nối. Để cho phép tên miền bằng các ngôn ngữ khác và có dấu, như münchen.de, 例え.テスト hay tên miền tiếng Việt có dấu, người ta đưa ra tên miền quốc tế hóa (IDN). Mỗi nhãn chứa ký tự khác được chuyển thành ASCII thuần túy bằng thuật toán Punycode (RFC 3492) và được thêm tiền tố xn--. Trình duyệt hiển thị cho bạn dạng dễ đọc, nhưng mạng và DNS luôn chỉ thấy dạng xn--.
Punycode hoạt động theo từng nhãn: trong münchen.de chỉ münchen được mã hóa (thành mnchen-3ya), dấu chấm và de giữ nguyên. Các chữ cái ASCII của nhãn được giữ ở phía trước, còn vị trí và giá trị của các ký tự khác được viết sau dấu gạch nối, vì vậy bạn thường vẫn đoán được từ trong xn--bcher-kva (“bcher”, Bücher).
Ví dụ thực tế
bücher.de→xn--bcher-kva.de例え.テスト→xn--r8jz45g.xn--zckzah(cả hai nhãn đều được mã hóa)☃.net→xn--n3h.net(người tuyết) và😀.com→xn--e28h.com(tên miền emoji)josé@münchen.de→josé@xn--mnchen-3ya.de(chỉ phần tên miền của email thay đổi)https://münchen.de:8080/straße?q=ü→https://xn--mnchen-3ya.de:8080/straße?q=ü(chỉ tên máy chủ thay đổi)
An ninh: tên miền giả mạo bằng chữ giống nhau
Chữ cái của các bảng chữ cái khác nhau có thể trông giống hệt. Chữ а Cyrillic nhìn giống y chữ a Latin, nên tên miền như аpple.com gõ với chữ cái đầu là Cyrillic là một tên miền khác với apple.com. Đây gọi là tấn công đồng dạng ký tự (homograph) và thường dùng trong lừa đảo. Khi giải mã một tên miền Punycode, công cụ kiểm tra từng nhãn và hiện cảnh báo nếu nó trộn chữ Latin với chữ Cyrillic hoặc Hy Lạp. Dạng xn-- hữu ích chính vì lý do này: nó làm cho sự khác biệt lộ ra. Nếu một email hay liên kết đưa bạn đến website mà bạn tưởng quen thuộc, hãy nhìn dạng xn-- của nó trước.
Giới hạn, quy tắc và mẹo
- Độ dài. Một nhãn tối đa 63 ký tự và cả tên miền tối đa 253, tính sau khi chuyển đổi, kể cả tiền tố
xn--. Đầu vào dài hơn sẽ được báo lỗi. - Chữ hoa chữ thường và chuẩn hóa. Văn bản được chuẩn hóa (NFC) và đổi thành chữ thường trước khi mã hóa, nên
MünchenvàMÜNCHENcho cùng kết quả. - Đăng ký tên miền. Các nhà quản lý tên miền có quy định riêng về ký tự và hệ chữ được phép, và áp dụng chuẩn IDNA đầy đủ. Hãy luôn xác nhận dạng cuối cùng với nhà đăng ký.
- Giải mã nhãn không hợp lệ. Nhãn bắt đầu bằng
xn--nhưng không phải Punycode đúng sẽ được báo lỗi chứ không đoán. - Danh sách hàng loạt. Mỗi dòng một mục; dòng trống được bỏ qua, và danh sách trộn tên Unicode với tên Punycode được chuyển đúng ở chế độ Tự động.
Câu hỏi thường gặp
Punycode là gì?
Punycode là cách viết bất kỳ văn bản Unicode nào chỉ bằng các chữ a–z, chữ số và dấu gạch nối. Tên miền quốc tế hóa (như münchen.de hay tên miền tiếng Việt có dấu) được lưu trong DNS dưới dạng các nhãn Punycode bắt đầu bằng xn--, ví dụ xn--mnchen-3ya.de.
Làm sao chuyển một tên miền sang Punycode?
Dán nó vào khung và kết quả hiện ngay. Công cụ chuyển từng nhãn (các phần giữa các dấu chấm) riêng biệt và giữ nguyên dấu chấm cùng tên miền cấp cao. Ví dụ 例え.テスト thành xn--r8jz45g.xn--zckzah.
Có chuyển được địa chỉ email và URL không?
Có. Với email, chỉ phần sau dấu @ được chuyển; với URL, chỉ tên máy chủ: đường dẫn, chuỗi truy vấn, cổng và tên người dùng giữ nguyên. Bạn có thể dán nhiều dòng cùng lúc, mỗi dòng được chuyển độc lập.
Vì sao có tên miền trông giống một website khác?
Một số chữ cái của các bảng chữ cái khác nhau trông giống hệt nhau, như chữ a Latin và chữ а Cyrillic. Kẻ xấu đăng ký tên miền chứa chữ cái giả như vậy để giả mạo website thật. Khi bạn giải mã một tên miền Punycode, công cụ sẽ cảnh báo nếu một nhãn trộn chữ Latin với chữ Cyrillic hoặc Hy Lạp.
Công cụ có tuân thủ đầy đủ chuẩn IDNA không?
Công cụ cài đặt thuật toán Punycode của RFC 3492, chuẩn hóa văn bản về NFC, đổi sang chữ thường và kiểm tra độ dài nhãn và tên miền. Công cụ không áp dụng mọi quy tắc ánh xạ của chuẩn IDNA/UTS 46 đầy đủ (ví dụ chữ ß của tiếng Đức hay ký tự toàn chiều rộng), nên khi đăng ký tên miền hãy kiểm tra lại kết quả với nhà đăng ký.