Trình chuyển đổi Punycode IDN
Trình chuyển đổi Punycode IDN là công cụ miễn phí giúp chuyển tên miền quốc tế hóa sang Punycode ASCII và chuyển Punycode trở lại văn bản Unicode dễ đọc.
Punycode là gì và tại sao cần có Punycode?
Punycode là một phần trong quy trình chuyển đổi IDNA từ nhãn U Unicode sang nhãn A ASCII. Nhờ đó, các tên chứa ký tự như ü, é hoặc 漢 có thể hoạt động trong những hệ thống vốn chỉ được thiết kế cho chữ cái Latin cơ bản, chữ số và dấu gạch nối.
Nhãn A theo IDNA bắt đầu bằng xn--. Tiền tố này cho các ứng dụng hỗ trợ IDNA biết rằng những ký tự còn lại là biểu diễn Punycode của một nhãn U. Dấu chấm vẫn đóng vai trò phân cách, vì vậy từng phần của tên miền được chuyển đổi độc lập.
Punycode được dùng trong Tên miền quốc tế hóa trong ứng dụng, thường được viết tắt là IDNA. IDNA còn đảm nhiệm việc xác thực và xử lý ký tự, còn Punycode cung cấp dạng biểu diễn ASCII cho một nhãn Unicode hợp lệ.
Punycode là phương thức mã hóa biểu diễn, không phải mã hóa bảo mật. Bất kỳ ai cũng có thể chuyển dạng ASCII trở lại Unicode, vì vậy Punycode không giữ bí mật thông tin và tuyệt đối không nên được dùng để che giấu dữ liệu.
Làm thế nào để chuyển đổi tên miền quốc tế hóa?
Nhập văn bản Unicode vào Chuyển đổi sang Punycode/ASCII, hoặc nhập nhãn A ASCII vào Chuyển đổi sang IDN/Văn bản. Kết quả tương ứng sẽ xuất hiện trong Punycode/ASCII hoặc IDN/Văn bản.
- Chỉ sao chép tên miền hoặc nhãn cần chuyển đổi, không kèm dấu ngoặc kép bao quanh.
- Dùng Chuyển đổi sang Punycode/ASCII cho văn bản Unicode có ký tự mang dấu hoặc ký tự không thuộc bảng chữ cái Latin.
- Dùng Chuyển đổi sang IDN/Văn bản cho các nhãn A ASCII.
- Kiểm tra từng nhãn đã chuyển đổi trước khi đưa vào DNS, phần cài đặt email hoặc cấu hình ứng dụng.
Trình chuyển đổi sử dụng các hàm PHP idn_to_ascii và idn_to_utf8. Quá trình xử lý diễn ra trên máy chủ. Dữ liệu bạn nhập được gửi đến máy chủ qua HTTPS và không được lưu trữ.
Ví dụ chuyển đổi tên miền
Ví dụ ngắn sau cho thấy mối liên hệ giữa tên hiển thị và dạng tương thích với DNS.
Đầu vào münchen.de
Đầu ra xn--mnchen-3ya.de
Nếu chuyển đổi đầu ra theo chiều ngược lại, kết quả sẽ là münchen.de. Nhãn chỉ chứa ASCII là de không cần chuyển đổi, còn nhãn chứa ü trở thành một nhãn xn--.
Dữ liệu đầu vào phải là văn bản tên miền hợp lệ. Định dạng nền tảng xử lý các trường hợp phổ biến như sau:
- Chữ cái mang dấu và chữ cái không thuộc bảng Latin: các nhãn Unicode hợp lệ được biểu diễn bằng ASCII thông qua IDNA và Punycode.
- Dấu chấm: mỗi dấu chấm phân tách các nhãn. Vì vậy, một tên miền có thể gồm cả nhãn ASCII thông thường lẫn nhãn đã mã hóa.
- Chữ số và dấu gạch nối thông thường: các ký tự này vốn đã thuộc ASCII và thường vẫn đọc được, miễn là tuân thủ quy tắc cú pháp tên miền.
- Khoảng trắng: khoảng trắng không hợp lệ bên trong nhãn máy chủ DNS thông thường. Nếu vô tình có khoảng trắng, hãy xóa nó thay vì trông chờ Punycode giữ lại như một phần của tên miền.
- Dấu câu: dấu chấm dùng để phân tách nhãn, còn các ký tự thuộc đường dẫn URL, cổng hoặc chuỗi truy vấn không phải là một phần của tên máy chủ.
- Đầu vào trống hoặc quá dài: giá trị trống không có tên miền để chuyển đổi. DNS cũng giới hạn mỗi nhãn đã mã hóa ở 63 octet, vì vậy một nhãn Unicode nhìn có vẻ ngắn vẫn có thể trở nên quá dài sau khi chuyển đổi.
Tại sao Punycode không chuyển đổi được hoặc cho ra văn bản bất thường?
Quá trình chuyển đổi thường thất bại vì đầu vào không phải văn bản IDN hợp lệ, chứa nhãn A sai định dạng hoặc trước đó đã được xử lý bằng một kiểu mã hóa khác. Khi chuyển sang IDN/Văn bản, dữ liệu ASCII thông thường không phải nhãn A có thể được giữ nguyên. Trước khi sửa ký tự theo cách thủ công, hãy kiểm tra xem nguồn chứa nhãn U Unicode, nhãn A ASCII hay tên máy chủ đã được mã hóa URL.
- Nhãn A sai định dạng hoặc dùng nhầm kiểu mã hóa: nhãn xn-- sai định dạng có thể khiến quá trình chuyển đổi thất bại. Base64, văn bản hệ thập lục phân và URL mã hóa phần trăm không phải là Punycode.
- Ký tự không được hỗ trợ: Punycode có thể biểu diễn các giá trị Unicode, nhưng quy tắc IDNA và cơ quan đăng ký tên miền có thể từ chối một số ký tự, tổ hợp hoặc hệ chữ nhất định.
- Nhãn quá dài: DNS giới hạn mỗi nhãn đã mã hóa ở 63 octet, vì vậy nhãn Unicode có thể trở nên quá dài sau khi chuyển đổi.
- Đầu vào không đầy đủ hoặc lẫn ký tự thừa: việc sao chép kèm dấu ngoặc, số cổng hoặc một phần thuộc tính HTML cùng với tên máy chủ có thể khiến giá trị không hợp lệ.
- Đầu vào bị mã hóa hai lần: nếu các ký tự trong tên miền Punycode đã được mã hóa phần trăm một cách rõ ràng hoặc không theo dạng chuẩn, chúng có thể xuất hiện dưới dạng chuỗi phần trăm. Trước tiên, hãy dùng Bộ giải mã URL để giải mã lớp URL đó, sau đó chuyển đổi tên miền thu được.
- Dữ liệu nhị phân thay vì văn bản: quy trình chuyển đổi IDN làm việc với văn bản tên miền Unicode. Các byte tùy ý trong tệp có thể không vượt qua bước xác thực hoặc tạo ra ký tự vô nghĩa nếu bị coi là văn bản.
Tôi sẽ gặp Punycode ở đâu?
Bạn chủ yếu sẽ gặp Punycode trong tên miền, bản ghi DNS, quá trình trình duyệt xử lý địa chỉ và các hệ thống lưu tên máy chủ dưới dạng ASCII. Trình duyệt có thể hiển thị tên quốc tế hóa dễ đọc hoặc giữ nguyên dạng xn--, tùy vào quy tắc an toàn và các ký tự liên quan.
Địa chỉ email có thể dùng Punycode trong phần tên miền nằm sau dấu @. Punycode không mã hóa tên hộp thư đứng trước dấu @. Dữ liệu JSON và chuỗi truy vấn có thể chứa Punycode khi mang tên máy chủ, nhưng cú pháp JSON và chuỗi truy vấn không yêu cầu dùng Punycode cho văn bản nói chung.
URI dữ liệu thường sử dụng mã hóa phần trăm hoặc Base64 cho nội dung. Punycode chỉ xuất hiện ở đó nếu văn bản bên trong có chứa một tên máy chủ quốc tế hóa. Tương tự, hãy dùng Bộ mã hóa URL cho giá trị đường dẫn hoặc truy vấn, còn Punycode dành cho chính tên máy chủ.
Câu hỏi thường gặp
Tôi có thể dán cả URL vào trình chuyển đổi IDN không?
An toàn hơn hết là tách tên máy chủ ra và chỉ chuyển đổi phần đó. Giao thức, cổng, đường dẫn, phân mảnh và truy vấn có các quy tắc cú pháp riêng. Những ký tự trong các phần này có thể cần mã hóa URL thay vì Punycode.
Tên miền có nhãn xn-- có phải là trang web không an toàn không?
Không. Nhiều tên miền quốc tế hóa hợp pháp sử dụng nhãn xn--. Tuy nhiên, các ký tự trông giống nhau từ những hệ chữ khác nhau có thể được dùng để tạo tên gây nhầm lẫn. Vì vậy, hãy kiểm tra cách viết sau khi giải mã và xác minh đúng tổ chức bạn muốn truy cập trước khi nhập mật khẩu hoặc thông tin thanh toán.
Có thể dùng emoji trong tên miền Punycode không?
Emoji không được phép xuất hiện trong nhãn tên miền IDNA, dù thuật toán Punycode có thể mã hóa các điểm mã của chúng. Chính sách của cơ quan đăng ký tên miền còn có thể áp dụng thêm các hạn chế đối với hệ chữ và ký hiệu được phép.
Tại sao trình duyệt hiển thị Punycode thay vì Unicode?
Trình duyệt có thể giữ dạng ASCII khi một nhãn trộn nhiều hệ chữ, chứa ký tự thường liên quan đến hành vi giả mạo hoặc không đáp ứng chính sách hiển thị của trình duyệt. Đây là biện pháp bảo vệ khi hiển thị, không phải bằng chứng cho thấy kết quả chuyển đổi bị sai.
Tên đã chuyển đổi có chắc chắn hoạt động trong DNS không?
Không. Chuyển đổi thành công không chứng minh tên miền đã được đăng ký, còn khả dụng hay được cơ quan đăng ký liên quan cho phép. Trước khi dùng kết quả, hãy xác minh độ dài nhãn, kiểm tra cách viết dễ đọc và xác nhận rằng cơ quan đăng ký chấp nhận các ký tự liên quan.
Công cụ phổ biến
Dễ dàng tạo chữ ký tùy chỉnh của riêng bạn và tải xuống nó một cách dễ dàng.
Lấy kích thước của một văn bản theo Byte (B), Kilobyte (KB) hoặc Megabyte (MB).
Sử dụng công cụ ping của chúng tôi để kiểm tra nhanh chóng và hiệu quả trạng thái cùng thời gian phản hồi của bất kỳ trang web, máy chủ hoặc cổng nào.
Công cụ tra cứu IP của Digily Link cung cấp thông tin chi tiết về mọi địa chỉ IP. Hãy dùng dịch vụ trực tuyến miễn phí này để nhận dữ liệu IP toàn diện.
Tạo ngay liên kết WhatsApp miễn phí bằng Trình tạo liên kết WhatsApp của chúng tôi. Thêm tin nhắn tùy chỉnh và bắt đầu trò chuyện chỉ với một lần nhấp, không cần đăng nhập hay viết mã.