Convertitore code unit UTF-16
Scriva Hi e otterrà 00480069 con ordine big-endian, cioè due code unit e 4 byte. In little-endian la H diventa 48 00. Incolli un dump esadecimale per rileggerlo come testo; le coppie di surrogati spezzate vengono rifiutate. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- Hi
- Modalità di calcolo
- Encode
- Ordine dei byte
- Be
- Risultato
- 00480069
- Unità di codice
- 2
- Byte
- 4
codifica o decodifica esadecimale
Cos'è una code unit UTF-16 e perché l'esadecimale aiuta
Un valore scalare Unicode nel Basic Multilingual Plane sta in una sola code unit da 16 bit. I caratteri fuori da quel piano—emoji, molte scritture storiche e simboli rari—usano una coppia di surrogati: un surrogato alto nell'intervallo U+D800–U+DBFF seguito da un surrogato basso in U+DC00–U+DFFF. La codifica trasforma il suo testo in esadecimale continuo maiuscolo, così ogni due cifre esadecimali sono un byte e ogni quattro cifre sono una code unit secondo l'endianness selezionata.
La decodifica inverte quel percorso: spazi, due punti, trattini bassi e trattini nella stringa esadecimale vengono ignorati, così può incollare dump da righe di log o catture di pacchetti senza un passaggio di pulizia separato. La risposta riporta sempre quante code unit e quanti byte sono stati prodotti, il che rende facile il confronto con un campo di lunghezza in una specifica binaria. Poiché la conversione è puro lavoro di parsing locale, input identici danno sempre output identici, senza deriva del modello e senza dipendenza dalla rete.
Endianness, scelta della modalità e regole di correttezza
La modalità predefinita è encode: fornisca testo semplice e riceva esadecimale. Passi alla modalità decode quando l'input è già una rappresentazione esadecimale di byte UTF-16. L'endian predefinito è be (big-endian), così U+0048 diventa la coppia di byte 00 48; scelga le per il little-endian 48 00, che corrisponde a molti layout di memoria di Windows e ARM.
La decodifica richiede una lunghezza esadecimale multipla di quattro dopo la pulizia, perché ogni code unit è di due byte. Sia in codifica sia in decodifica lo stream viene controllato per i surrogati spaiati: un'unità alta senza un'unità bassa successiva, un'unità bassa senza un'unità alta precedente o una coppia troncata alla fine dell'input falliscono tutte. Quella regola previene una corruzione silenziosa quando un dump è stato tagliato a metà carattere o quando una stringa conteneva già un surrogato isolato.
Anche valori di modalità o endian non validi falliscono subito con un messaggio specifico del campo, così i client possono correggere la richiesta senza tirare a indovinare.
Dove eseguirlo e come funziona il prezzo
Per un'ispezione una tantum—leggere un dump UTF-16LE da un'esportazione del registro di Windows, verificare come un emoji si espande in due code unit o confermare che l'esadecimale big-endian di un partner corrisponde al suo testo—usi lo strumento gratuito nel browser. Inserisca la chiamata in un taccuino di reverse engineering, in un harness di QA che verifica l'uguaglianza del formato su filo, o in un flusso di supporto dove i clienti incollano l'esadecimale e lei ha bisogno della stringa leggibile senza aprire un editor esadecimale.
Poiché la capacità è lavoro di parsing tier-A, la latenza resta bassa e non c'è costo di container o modello da rimisurare dopo ogni deploy.
Casi d'uso
Supporto e reverse engineering
Decodifichi dump esadecimali UTF-16 forniti dai clienti in testo leggibile, rifiutando gli stream di surrogati troncati o spaiati.
Domande frequenti
Qual è la differenza tra be e le?
be (big-endian) memorizza per primo il byte alto in ciascuna unità da 16 bit; le (little-endian) memorizza per primo il byte basso. Scelga il layout atteso dal suo formato di destinazione.
Cosa succede con un surrogato spaiato?
Non viene restituito alcun esadecimale o testo parziale, e la chiamata fallita non viene addebitata.
Posso incollare esadecimale con spazi o due punti?
Sì, in modalità decode. Spazi, trattini bassi, due punti e trattini vengono rimossi prima del parsing. Le cifre restanti devono formare code unit complete da due byte.
Come appare un'emoji in UTF-16?
Occupa due code unit, la cosiddetta coppia di surrogati: una metà alta tra D800 e DBFF seguita da una metà bassa tra DC00 e DFFF. L'esadecimale mostra quindi due unità per un solo carattere visibile, e le due metà devono restare insieme.
Lo strumento aggiunge un segno di ordine dei byte?
No. In codifica non si aggiunge nulla all'inizio e in decodifica non si toglie nulla. Se il suo file o protocollo richiede il segno FEFF, lo aggiunga lei come unità esplicita, oppure lo tolga dal dump prima di incollarlo.
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/utf16 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hi"}'const res = await fetch("https://api.kit.forhosting.com/enc/utf16", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hi"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/utf16",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hi"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/utf16", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hi"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hi"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/utf16", 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": "Hi"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.utf16",
"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
UTF-16 è ancora il formato su filo e in memoria dietro le API di Windows, molti protocolli binari, gli interni delle stringhe JavaScript e i formati di interscambio che parlano in code unit da 16 bit anziché in byte UTF-8 grezzi. Questo strumento converte il testo semplice in un dump esadecimale continuo di quelle code unit—o viceversa—mentre lei sceglie il layout big-endian o little-endian per ciascuna unità. Le coppie di surrogati per i caratteri fuori dal Basic Multilingual Plane restano intatte; un surrogato alto o basso spaiato fallisce con un chiaro errore invalid_input invece di produrre byte ambigui. Lo stesso percorso deterministico alimenta il modulo gratuito nel browser e l'API a $0.002 per ogni richiesta riuscita.
Cos'è una code unit UTF-16 e perché l'esadecimale aiuta
Fare il debug di un dump di protocollo, di un payload degli appunti o di un file mal etichettato spesso significa leggere quelle unità come esadecimale anziché indovinare quale byte è quale.
Endianness, scelta della modalità e regole di correttezza
L'endianness si applica a ciascuna code unit in modo indipendente; non c'è un prefisso o una rimozione automatica del BOM—se le serve un BOM, aggiunga o rimuova lei stesso il familiare schema FEFF come unità esplicite.
Dove eseguirlo e come funziona il prezzo
Ogni chiamata API riuscita costa $0.002; la validazione fallita, inclusi surrogati spaiati ed esadecimale malformato, non viene addebitata, così sondare dump difettosi non intacca il saldo prepagato. Le risposte sono JSON deterministico con il risultato convertito, la modalità e l'endian risolti, e i conteggi di code unit e byte.
Casi di integrazione
Debug di protocolli e formati binari
Trasformi testo umano in esadecimale UTF-16 big o little-endian per confrontarlo con catture di pacchetti, buffer di API Windows o esempi di specifica.
Generazione di fixture e dati di test
Generi fixture esadecimali deterministiche per test unitari che verificano lunghezza di codifica, coppie di surrogati e layout specifici per endian.
Domande tecniche
Cosa restituisce la modalità encode?
Esadecimale continuo maiuscolo dei byte UTF-16 per il suo testo secondo l'endianness scelta, più i conteggi code_units e bytes. Nessun BOM viene aggiunto automaticamente.
Quanto costa l'API?
$0.002 per ogni richiesta riuscita. Lo strumento nel browser è gratuito. L'input non valido non viene addebitato.