Codificatore IDNA
münchen.example.com diventa xn--mnchen-3ya.example.com: ogni etichetta con accenti o un'altra scrittura riceve la sua forma xn--, mentre le etichette in ASCII semplice restano invariate. Al contrario, decodifichi un nome host letto in un log o nell'intestazione di un'email. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- münchen.example.com
- Modalità di calcolo
- Encode
- Risultato
- xn--mnchen-3ya.example.com
- ASCII
- xn--mnchen-3ya.example.com
- Unicode
- münchen.example.com
- Numero di etichette
- 3
I nomi di dominio internazionalizzati consentono a marchi, città e nomi propri di apparire in scritture native sulla rete pubblica, ma il sistema dei nomi di dominio trasporta ancora le etichette come codifiche compatibili ASCII. IDNA (Internationalized Domain Names in Applications) associa ogni etichetta Unicode U-label a un'A-label che inizia con xn-- e porta Punycode RFC 3492, poi inverte la mappatura affinché gli operatori possano rileggere il nome previsto. Questa capacità accetta un hostname multi-etichetta completo —non solo una singola etichetta— e converte in entrambe le direzioni con un campo mode semplice: encode per ToASCII, decode per ToUnicode. Le etichette ASCII pure passano invariate; i nomi misti, come un'etichetta di città più un TLD classico, sono gestiti etichetta per etichetta.
Codificare un hostname Unicode in ASCII IDNA (ToASCII / xn--)
Il motore divide l'hostname sui punti, piega ogni etichetta in modo indipendente dalla locale e elabora le etichette separatamente, così un nome misto con etichetta sinistra non ASCII accanto a una destra ASCII viene convertito senza forzare l'intera stringa attraverso un unico codificatore. Le etichette LDH ASCII pure passano invariate senza prefisso xn--, in linea con la pratica IDNA per i nomi che non hanno mai avuto bisogno di internazionalizzazione.
Quando un'etichetta contiene un punto di codice non ASCII, il motore esegue il codificatore Punycode RFC 3492 e antepone xn-- per produrre l'A-label usata in file di zona DNS, SAN di certificati, regole host di reverse proxy e visualizzazioni in stile WHOIS. Le etichette che sembrano già forme ACE vengono validate con andata e ritorno decode-and-re-encode, così una stringa xn-- modificata a mano fallisce in modo chiuso invece di essere fidata alla cieca.
Input identici producono sempre output identici perché il percorso è aritmetica pura, senza rete, senza sale casuale e senza orologio di parete. Usi questo percorso quando le serve un hostname ASCII sicuro da incollare in una checklist di migrazione, una riga di zona, una voce SAN ACME o un ticket di supporto che deve sopravvivere a sistemi che accettano solo hostname ASCII.
Il DNS impone un limite di sessantatré ottetti per etichetta e di duecentocinquantatré caratteri sull'hostname ASCII assemblato; questo motore verifica entrambi affinché i nomi internazionali troppo grandi falliscano presto invece di produrre stringhe non distribuibili. La notazione FQDN con punto finale è preservata quando presente, mentre punti iniziali, punti consecutivi, schemi, percorsi, porte e userinfo sono rifiutati affinché la landing SEO resti incentrata sulla conversione di dominio bare.
Casi d'uso
Preparazione zona DNS e certificati
Codifichi hostname di marca o città Unicode in forma ASCII xn-- prima di scrivere file di zona, elenchi SAN ACME o regole host di reverse proxy che accettano solo ASCII.
Supporto e leggibilità dei log
Decodifichi hostname ACE da intestazioni mail, log di trasparenza dei certificati e sistemi di ticket in Unicode leggibile per agenti e clienti.
Domande frequenti
Come converto un dominio Unicode in ASCII IDNA?
Il campo result restituisce la forma ASCII come xn--mnchen-3ya.example.com.
Come decodifico un hostname xn-- di nuovo in Unicode?
Imposti mode su decode e inserisca l'hostname ACE in text. Il campo result restituisce la forma Unicode quando ogni etichetta è valida.
Cosa succede con un'etichetta IDNA non valida?
Il messaggio indica la posizione dell'etichetta e il motivo (corpo xn-- vuoto, Punycode errato, etichette vuote, limiti di lunghezza). I fallimenti non vengono addebitati.
Il codificatore di domini IDNA è gratuito?
Lo strumento browser gira gratis sul Suo dispositivo.
Posso convertire un hostname multi-etichetta completo?
Sì. A differenza degli strumenti Punycode a etichetta singola, questa capacità accetta domini multi-etichetta e converte ciascuna etichetta secondo le regole IDNA, restituendo le viste ascii e unicode.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/enc/idna \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"münchen.example.com"}'const res = await fetch("https://api.kit.forhosting.com/enc/idna", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "münchen.example.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/idna",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "münchen.example.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/idna", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"münchen.example.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"münchen.example.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/idna", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text": "münchen.example.com"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.idna",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Corpi ACE vuoti, Punycode troncato, caratteri illegali, punti consecutivi, schemi, percorsi e violazioni di lunghezza DNS falliscono con invalid_input che indica l'indice dell'etichetta errata invece di corrompere silenziosamente la stringa.
Codificare un hostname Unicode in ASCII IDNA (ToASCII / xn--)
Invii un corpo JSON con il campo stringa obbligatorio text impostato su un nome di dominio internazionalizzato completo —ad esempio un marchio di città con dieresi seguito da un secondo livello e un TLD classici— e lasci mode al valore predefinito encode oppure imposti mode su encode in modo esplicito. La risposta include result (l'hostname ASCII completo), ascii (la stessa forma di rete), unicode (la vista Unicode piegata), label_count, has_ace true se qualche etichetta ha usato ACE, mode encode e method idna affinché i test possano fissare ogni campo.
Decodificare hostname ACE in Unicode e segnalare etichette non valide
Imposti mode su decode e inserisca in text un hostname ASCII o ACE misto come xn--mnchen-3ya.example.com. Il motore scorre ogni etichetta, rimuove il prefisso xn-- quando presente, valida che il corpo usi solo l'alfabeto di base di lettere, cifre e trattini interni, poi esegue il decodificatore RFC 3492 per recuperare i punti di codice Unicode —inclusi caratteri del piano supplementare rappresentati con coppie surrogato nelle stringhe JavaScript. Le etichette ASCII pure non ACE passano in decode, e le etichette Unicode già presenti in un hostname misto sono accettate e riderivate in ASCII nel campo ascii affinché la risposta offra sempre entrambe le viste. Preferisca questa capacità quando l'intento di ricerca è un codificatore o decodificatore di domini IDNA per hostname completi; esperimenti di corpo Punycode a etichetta singola e risoluzione DNS live appartengono ad altri strumenti. Dopo la decodifica di un'etichetta la ricodifica e richiede un andata e ritorno esatto rispetto al corpo, così stringhe ACE troncate o modificate a mano falliscono chiuse con invalid_input invece di restituire glifi plausibili ma errati. Corpi vuoti dopo xn--, caratteri illegali come punteggiatura, condizioni di overflow, etichette vuote da punti consecutivi e etichette che superano i limiti di lunghezza DNS sollevano un messaggio invalid_input descrittivo che include la posizione dell'etichetta in base uno, così gli strumenti bulk possono evidenziare il segmento errato. Un decode riuscito restituisce result e unicode come forma U-label leggibile, ascii come forma di rete, label_count, has_ace true se era presente ACE, mode decode e method idna. La validazione fallita non viene addebitata sull'API prepagata dopo il rifiuto del motore, il che mantiene economico il decode esplorativo di righe di log sospette e protegge il saldo da successi silenziosi su input spazzatura.
Uso dell'API, prezzi, flussi DNS e limiti pratici
Elabori hostname completi in una sola chiamata: il design multi-etichetta è intenzionale affinché SEO e prodotto coincidano con «codificatore di domini IDNA» invece di costringere i client a dividere e ricongiungere etichette. Quando un'etichetta fallisce, la corregga e reinoltri; un successo parziale non viene mai restituito, il che mantiene semplice il codice client ed evita che hostname a metà convertiti finiscano nel DNS di produzione. Chiami il codificatore di domini IDNA gratuito nel browser per playbook di supporto, demo in aula e controlli puntuali di hostname senza installare trucchi OpenSSL s_client né runtime di linguaggio. Usi l'API prepagata KIT quando un backend, pannello registrar, job di automazione certificati, gateway di posta o SDK necessita dello stesso passo encode o decode a saldo a $0.002 per elemento riuscito; i fallimenti di validazione non consumano mai saldo dopo il rifiuto del motore. Un flusso tipico codifica un hostname di marca Unicode prima di scrivere A-label in un template di zona o elenco server_name di reverse proxy, poi decodifica nomi ACE copiati da intestazioni mail, log di trasparenza dei certificati o oggetti di ticket affinché gli operatori leggano le U-label previste. Gli autori di SDK possono mappare il campo result su un pulsante copia mentre ascii, unicode, label_count e has_ace rendono autoesplicativi gli esempi OpenAPI per chi impara IDNA per la prima volta. Non invii URL complete: rimuova prima schema e percorso e converta solo l'hostname bare affinché il contratto resti stretto e i messaggi di errore restino utilizzabili.
Casi di integrazione
Documentazione e controlli golden CI
Fissi fixture encode e decode per nomi IDNA multi-etichetta affinché campioni di documentazione e test di integrazione continua falliscano in fretta se la gestione ACE deriva.