Conversione Punycode (nomi di dominio internazionalizzati)

Converte nei due sensi i nomi di dominio internazionalizzati, che contengono caratteri non latini, e la loro codifica Punycode, compatibile con l'alfabeto ASCII.

Consigli per l'uso

  • Anche i nomi formati da più etichette, cioè da parti separate dal punto, vengono convertiti riconoscendo automaticamente ciascuna etichetta: quelle di soli caratteri ASCII restano invariate, mentre solo quelle che contengono caratteri non ASCII assumono il prefisso xn--.
  • Nella modalità dal Punycode al nome di dominio vengono decodificate soltanto le etichette che iniziano con xn--, mentre le altre restano invariate.
  • La stessa logica di conversione si applica non solo ai nomi di dominio, ma anche alla parte che segue la chiocciola in un indirizzo di posta elettronica.
  • Digitando nella barra degli indirizzi un dominio internazionalizzato, la maggior parte dei browser lo converte internamente in Punycode prima di risolverlo nel sistema dei nomi di dominio.

Domande frequenti

Il Punycode, definito dalla RFC 3492, è la codifica che trasforma in una stringa di soli caratteri ASCII i nomi di dominio contenenti caratteri Unicode — giapponesi, cinesi, arabi e altri — così da renderli gestibili dal sistema dei nomi di dominio. Le etichette convertite ricevono il prefisso xn--.

Perché il sistema dei nomi di dominio fu progettato in origine per i soli caratteri ASCII e non può risolvere direttamente nomi che contengano caratteri di altri alfabeti o emoji. Convertendoli in stringhe ASCII, il Punycode permette di realizzare i nomi internazionalizzati sfruttando l'infrastruttura esistente senza modificarla.

È il cosiddetto prefisso di codifica compatibile con l'ASCII e segnala al sistema dei nomi di dominio e ai programmi che quell'etichetta è un nome internazionalizzato codificato in Punycode. Riconoscendolo, i browser lo decodificano nella stringa Unicode originaria e la mostrano all'utente.

Sì: è la tecnica di frode nota come attacco omografico sui nomi internazionalizzati. Sono stati segnalati casi di domini codificati con caratteri quasi indistinguibili — la «а» cirillica al posto della «a» latina — che si spacciano per domini legittimi. I principali browser adottano contromisure, per esempio mostrando nella barra degli indirizzi la forma Punycode, quella che inizia con xn--, quando rilevano combinazioni sospette.
Tool-kun

A proposito — come si è arrivati ai domini scritti in altri alfabeti

Il dibattito sui nomi di dominio internazionalizzati comincia nella seconda metà degli anni Novanta, ma la standardizzazione richiese molto tempo. Furono proposti più metodi per gestire i caratteri non ASCII senza modificare le fondamenta del sistema dei nomi, e alla fine si adottò l'approccio Punycode, standardizzato nel 2003 con la RFC 3492: la codifica e la decodifica avvengono a livello applicativo, sul lato client, mentre i server dei nomi restano invariati.

Il nome Punycode nasce dall'incrocio fra Unicode e un gioco di parole, e l'algoritmo è la specializzazione per i nomi di dominio di una tecnica più generale, chiamata Bootstring, ideata per codificare un insieme qualsiasi di caratteri in un insieme ristretto. Che il nome stesso nasca da uno scherzo dice molto dell'umorismo delle comunità di sviluppatori.

Oggi sono registrati e in uso nomi di dominio nei più diversi alfabeti e persino con emoji, ma dietro le quinte avviene sempre questa conversione. Anche il bel dominio scritto in caratteri non latini che compare nella barra degli indirizzi viaggia, nel dialogo con i server dei nomi, come una prosaica stringa ASCII che comincia con xn--.