Convertitore Punycode
L'etichetta münchen diventa xn--mnchen-3ya, la forma ASCII accettata da record di dominio, certificati e sistemi più vecchi. Codifichi un'etichetta Unicode alla volta, oppure decodifichi un'etichetta xn-- nelle sue lettere leggibili. 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
- Modalità di calcolo
- Encode
- Risultato
- xn--mnchen-3ya
- Testo Unicode
- münchen
- Corpo Punycode
- mnchen-3ya
I nomi di dominio internazionalizzati richiedono una codifica compatibile con ASCII affinché DNS, certificati e resolver legacy possano trasportare etichette con dieresi, accenti, cirillico, arabo o caratteri CJK. Punycode (RFC 3492) è l'algoritmo Bootstring dietro il prefisso xn-- familiare nelle A-label IDNA. Questa capacità codifica una singola etichetta di dominio Unicode in quella forma ACE, oppure decodifica un corpo ACE o Punycode grezzo di nuovo nella U-label Unicode originale, con un semplice campo mode e aritmetica intera deterministica. Caratteri di alfabeto non validi, corpi xn-- vuoti, surrogati isolati e stringhe multi-etichetta con punti sono rifiutati con un errore di input non valido chiaro invece di una corruzione silenziosa.
Codifichi un'etichetta di dominio Unicode in Punycode ACE (xn--)
Il motore mette l'etichetta in minuscolo in modo indipendente dalla locale, rifiuta stringhe vuote, spazi bianchi, caratteri di controllo e qualsiasi punto incorporato così da non trattare mai accidentalmente un hostname multi-etichetta intero come una sola etichetta DNS. Le etichette ASCII pure passano invariate senza prefisso xn--, in linea con la pratica IDNA per i nomi LDH.
Quando l'etichetta contiene un punto di codice non ASCII, il motore esegue il codificatore Punycode RFC 3492 e prefissa il risultato con xn-- per produrre l'A-label usata nei file di zona DNS, nei SAN dei certificati e nelle visualizzazioni WHOIS. La risposta include result (l'etichetta ACE o ASCII), unicode (la U-label piegata), punycode (il corpo senza il prefisso xn--), ace vero o falso, mode encode e method rfc3492 così i test possono fissare ogni campo.
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 serve un'A-label sicura da incollare per una checklist di migrazione, una riga di zona o un ticket di supporto che deve sopravvivere a sistemi che accettano solo hostname ASCII.
Come usarlo con i domini e i suoi limiti
Chiami il convertitore punycode gratuito nel browser per playbook di supporto, demo di aula e controlli occasionali di etichette senza installare OpenSSL o runtime di linguaggio. Un flusso tipico codifica un'etichetta di marchio Unicode prima di scrivere un'A-label in un template di zona, poi decodifica nomi ACE copiati da intestazioni di posta o log di certificati così gli operatori leggono la U-label prevista. Un altro flusso verifica che i campioni di documentazione facciano ancora andata e ritorno prima di un rilascio.
Le etichette DNS sono limitate a sessantatré ottetti in forma ACE, e questo motore applica quel limite in encode così etichette internazionali sovradimensionate falliscono presto invece di produrre stringhe non distribuibili.
Casi d'uso
Preparazione di zona DNS e certificati
Codifichi etichette di marchio o città Unicode in A-label xn-- prima di scrivere file di zona, elenchi SAN ACME o regole host di reverse proxy che accettano solo ASCII.
Leggibilità in supporto e log
Decodifichi nomi ACE da intestazioni di posta, log di trasparenza dei certificati e sistemi di ticketing in Unicode leggibile per agenti e clienti.
Domande frequenti
Come converto un'etichetta di dominio Unicode in Punycode?
Il campo result restituisce la forma ACE come xn--mnchen-3ya.
Come decodifico un'etichetta xn-- in Unicode?
Imposti mode su decode e metta l'etichetta ACE (o il corpo Punycode grezzo senza xn--) in text. Il campo result restituisce la U-label Unicode quando la codifica è valida.
Cosa succede con un'etichetta Punycode non valida?
Caratteri illegali, corpi xn-- vuoti, andata e ritorno falliti, punti nella stringa ed etichette vuote sono rifiutati e non addebitati.
Il convertitore punycode è gratuito?
Lo strumento del browser gira gratis sul Suo dispositivo.
Posso convertire un hostname completo con più etichette?
No. Questa capacità accetta un'etichetta alla volta e rifiuta i punti. Divida l'hostname e codifichi o decodifichi ciascuna etichetta separatamente per output di dimensione DNS prevedibili.
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/punycode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"münchen"}'const res = await fetch("https://api.kit.forhosting.com/enc/punycode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "münchen"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/punycode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "münchen"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/punycode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"münchen"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"münchen"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/punycode", 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"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.punycode",
"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
Codifichi un'etichetta di dominio Unicode in Punycode ACE (xn--)
Invii un corpo JSON con il campo stringa obbligatorio text impostato a un'etichetta di dominio in Unicode—ad esempio un nome di città con dieresi, un marchio in scrittura nativa o un'etichetta giapponese—e lasci mode al predefinito encode o lo imposti esplicitamente a encode.
Decodifichi ACE o Punycode in Unicode e gestisca input non validi
Imposti mode su decode e metta un'etichetta ACE come xn--mnchen-3ya o un corpo Punycode grezzo come mnchen-3ya in text. Il motore rimuove un prefisso xn-- iniziale 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 punti di codice Unicode—inclusi caratteri del piano supplementare rappresentati con coppie surrogate nelle stringhe JavaScript. Preferisca questa capacità quando l'intento di ricerca è un convertitore punycode per etichette di dominio leggibili; la suddivisione di hostname completi, la ricerca di suffissi pubblici e la risoluzione DNS live appartengono ad altri strumenti. Dopo la decodifica ri-codifica e richiede un andata e ritorno esatto contro il corpo così che stringhe ACE troncate o modificate a mano falliscano chiuse con invalid_input invece di restituire glifi plausibili ma sbagliati. Corpi vuoti dopo xn--, caratteri illegali come punteggiatura, testo non ASCII offerto per decode, stringhe multi-etichetta con punti e condizioni di overflow sollevano un messaggio invalid_input descrittivo e non sono addebitati sull'API prepagata. Un decode riuscito restituisce result e unicode come la U-label, punycode come il corpo, ace vero quando l'input portava il prefisso xn--, mode decode e method rfc3492.
Uso dell'API, prezzi, flussi DNS e limiti pratici
Usi l'API prepagata KIT quando un backend, pannello di registrar, job di automazione certificati o SDK necessita dello stesso passo encode o decode sotto saldo a $0.002 per elemento riuscito; la validazione fallita non consuma mai saldo dopo il rifiuto del motore. Elabori ciascuna etichetta di un hostname multi-etichetta separatamente—l'API rifiuta i punti per progettazione affinché la landing SEO corrisponda all'intento di conversione a singola etichetta. Gli autori che pubblicano SDK possono mappare il campo result a un pulsante copia mentre unicode, punycode e i flag ace rendono autoesplicativi gli esempi OpenAPI per chi impara l'IDNA per la prima volta.
Casi di integrazione
Documentazione e controlli golden di CI
Fissi fixture encode e decode così campioni di documentazione e test di integrazione continua falliscono in fretta se la gestione di Punycode o del prefisso ACE deriva.