Penukar IDN Punycode

5 daripada 2 penilaian

Penukar IDN Punycode ialah alat percuma yang menukar nama domain antarabangsa kepada ASCII Punycode dan menukar Punycode kembali kepada teks Unicode yang boleh dibaca.

Apakah Punycode dan mengapa ia diperlukan?

Punycode ialah sebahagian daripada proses penukaran IDNA, daripada U-label Unicode kepada A-label ASCII. Dengan Punycode, nama yang mengandungi huruf seperti ü, é atau 漢 boleh digunakan dalam sistem yang pada asalnya direka untuk huruf Latin asas, angka dan tanda sempang.

A-label IDNA bermula dengan xn--. Awalan ini memberitahu aplikasi yang menyokong IDNA bahawa aksara selebihnya ialah perwakilan Punycode bagi U-label. Tanda titik kekal sebagai pemisah, jadi setiap bahagian domain ditukar secara berasingan.

Punycode digunakan dalam Internationalised Domain Names in Applications, yang biasanya disingkatkan sebagai IDNA. IDNA turut mengendalikan pengesahan dan pemprosesan aksara, manakala Punycode menyediakan perwakilan ASCII bagi label Unicode yang layak.

Punycode ialah pengekodan, bukannya penyulitan. Sesiapa sahaja boleh menukar bentuk ASCII kembali kepada Unicode, jadi ia tidak memberikan kerahsiaan dan tidak sepatutnya digunakan untuk menyembunyikan maklumat.

Bagaimanakah cara menukar nama domain antarabangsa?

Masukkan teks Unicode dalam Tukar kepada Punycode/ASCII, atau masukkan A-label ASCII dalam Tukar kepada IDN/Teks. Hasil yang sepadan akan dipaparkan dalam Punycode/ASCII atau IDN/Text.

  1. Salin hanya nama domain atau label yang hendak ditukar, tanpa tanda petik di sekelilingnya.
  2. Gunakan Tukar kepada Punycode/ASCII untuk teks Unicode yang mengandungi aksara beraksen atau bukan Latin.
  3. Gunakan Tukar kepada IDN/Teks untuk A-label ASCII.
  4. Semak setiap label yang telah ditukar sebelum memasukkannya dalam DNS, tetapan e-mel atau konfigurasi aplikasi.

Penukar ini menggunakan fungsi PHP idn_to_ascii dan idn_to_utf8. Pemprosesan dilakukan pada pelayan. Input anda dihantar ke pelayan melalui HTTPS dan tidak disimpan.

Contoh penukaran domain

Contoh ringkas ini menunjukkan hubungan antara nama yang dipaparkan dengan bentuk yang serasi dengan DNS.

Input münchen.de

Output xn--mnchen-3ya.de

Jika output itu ditukar semula ke arah sebaliknya, hasilnya ialah münchen.de. Label yang hanya mengandungi ASCII, iaitu de, tidak perlu ditukar, manakala label yang mengandungi ü menjadi label xn--.

Input mestilah teks nama domain yang sah. Format asas mengendalikan situasi lazim seperti berikut:

  • Huruf beraksen dan bukan Latin: label Unicode yang layak diwakili dalam ASCII melalui IDNA dan Punycode.
  • Tanda titik: setiap tanda titik memisahkan label. Oleh itu, sesuatu domain boleh mengandungi gabungan label ASCII biasa dan label yang dikodkan.
  • Angka dan tanda sempang biasa: aksara ini sudah berada dalam ASCII dan biasanya kekal boleh dibaca, tertakluk pada peraturan sintaks nama domain.
  • Ruang: ruang tidak sah dalam label hos DNS biasa. Buang ruang yang dimasukkan secara tidak sengaja dan jangan harapkan Punycode mengekalkannya sebagai sebahagian daripada domain.
  • Tanda baca: tanda titik memisahkan label, tetapi aksara dalam laluan URL, port atau rentetan pertanyaan bukan sebahagian daripada nama hos.
  • Input kosong atau terlalu panjang: nilai kosong tidak mengandungi domain untuk ditukar. DNS juga mengehadkan setiap label yang dikodkan kepada 63 oktet, jadi label Unicode yang kelihatan pendek boleh menjadi terlalu panjang selepas penukaran.

Mengapa penukaran Punycode gagal atau menghasilkan teks yang tidak dijangka?

Penukaran biasanya gagal kerana input bukan teks IDN yang sah, mengandungi A-label yang tidak betul atau telah melalui pengekodan lain terlebih dahulu. Apabila menukar kepada IDN/Text, input ASCII biasa yang bukan A-label mungkin kekal tanpa perubahan. Sebelum mengubah aksara secara manual, semak sama ada sumber tersebut mengandungi U-label Unicode, A-label ASCII atau nama hos yang telah dikodkan sebagai URL.

  • A-label tidak betul atau pengekodan yang salah: label xn-- yang tidak betul boleh menyebabkan penukaran gagal. Base64, teks perenambelasan dan URL berkod peratus bukan Punycode.
  • Aksara yang tidak disokong: Punycode boleh mewakili nilai Unicode, tetapi peraturan IDNA dan pendaftar domain boleh menolak aksara, gabungan atau sistem tulisan tertentu.
  • Label terlalu panjang: DNS mengehadkan setiap label yang dikodkan kepada 63 oktet, jadi label Unicode boleh menjadi terlalu panjang selepas penukaran.
  • Input tidak lengkap: menyalin tanda kurung, nombor port atau sebahagian daripada atribut HTML bersama nama hos boleh menyebabkan nilai itu menjadi tidak sah.
  • Input dikodkan dua kali: jika aksara dalam domain Punycode dikodkan peratus secara jelas atau dalam bentuk bukan kanonik, aksara tersebut mungkin dipaparkan sebagai jujukan peratus. Nyahkod lapisan URL itu terlebih dahulu menggunakan Penyahkod URL, kemudian tukar domain yang terhasil.
  • Data perduaan dan bukannya teks: penukaran IDN berfungsi dengan teks nama domain Unicode. Bait fail sebarangan boleh gagal dalam pengesahan atau menghasilkan aksara yang tidak bermakna apabila dianggap sebagai teks.

Di manakah Punycode biasanya ditemui?

Punycode paling kerap ditemui dalam nama domain, rekod DNS, pengendalian alamat oleh pelayar dan sistem yang menyimpan nama hos sebagai ASCII. Pelayar mungkin memaparkan nama antarabangsa yang boleh dibaca atau mengekalkan bentuk xn--, bergantung pada peraturan keselamatannya dan aksara yang digunakan.

Alamat e-mel boleh menggunakan Punycode pada domain selepas tanda @. Punycode tidak mengekod nama peti mel sebelum tanda @. Muatan JSON dan rentetan pertanyaan mungkin mengandungi Punycode apabila membawa nama hos, tetapi sintaks JSON dan rentetan pertanyaan tidak memerlukan Punycode untuk teks umum.

URI Data biasanya menggunakan pengekodan peratus atau Base64 untuk kandungannya. Punycode hanya muncul di situ jika teks yang terkandung kebetulan menyertakan nama hos antarabangsa. Begitu juga, gunakan Pengekod URL untuk nilai laluan atau pertanyaan dan Punycode untuk nama hos itu sendiri.

Soalan lazim

Bolehkah saya menampal URL penuh ke dalam penukar IDN?

Lebih selamat jika anda mengasingkan nama hos dan menukar bahagian itu sahaja. Skema, port, laluan, fragmen dan pertanyaan mempunyai peraturan sintaks masing-masing. Aksara dalam bahagian tersebut mungkin memerlukan pengekodan URL dan bukannya Punycode.

Adakah label xn-- dalam nama domain bermakna laman web itu tidak selamat?

Tidak. Banyak domain antarabangsa yang sah menggunakan label xn--. Walau bagaimanapun, aksara yang kelihatan serupa daripada sistem tulisan berlainan boleh digunakan untuk menghasilkan nama yang mengelirukan. Semak ejaan selepas dinyahkod dan pastikan organisasi tersebut ialah pihak yang anda jangkakan sebelum memasukkan kata laluan atau butiran pembayaran.

Bolehkah emoji digunakan dalam domain Punycode?

Emoji tidak dibenarkan dalam label domain IDNA, walaupun algoritma Punycode boleh mengekod titik kodnya. Dasar pendaftar domain juga boleh mengenakan sekatan tambahan terhadap sistem tulisan dan simbol yang dibenarkan.

Mengapa pelayar saya memaparkan Punycode dan bukannya Unicode?

Pelayar mungkin mengekalkan bentuk ASCII apabila sesuatu label mencampurkan beberapa sistem tulisan, mengandungi aksara yang dikaitkan dengan penyamaran atau tidak memenuhi dasar paparannya. Ini ialah langkah perlindungan paparan, bukannya bukti bahawa penukaran tersebut salah.

Adakah nama yang telah ditukar pasti berfungsi dalam DNS?

Tidak. Penukaran yang berjaya tidak membuktikan bahawa domain tersebut telah didaftarkan, masih tersedia atau dibenarkan oleh pendaftar yang berkaitan. Sebelum menggunakan hasilnya, sahkan panjang label, semak ejaan yang boleh dibaca dan pastikan pendaftar menerima aksara yang digunakan.

Alat popular