Conversor de unidades UTF-16
Digite Hi e receba 00480069 com ordem big-endian, ou seja, duas unidades de código e 4 bytes. Em little-endian, o H vira 48 00. Cole um dump hexadecimal para lê-lo como texto; pares de surrogates quebrados são recusados. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- Hi
- Modo de cálculo
- Encode
- Ordem dos bytes
- Be
- Resultado
- 00480069
- Unidades de código
- 2
- Bytes
- 4
UTF-16 continua sendo o formato de fio e de memória por trás das APIs do Windows, de muitos protocolos binários, das strings internas do JavaScript e de formatos de intercâmbio que falam em unidades de código de 16 bits em vez de bytes UTF-8 crus. Esta ferramenta converte texto simples em um dump contínuo em hexadecimal dessas unidades de código — ou o inverso — enquanto você escolhe o layout big-endian ou little-endian para cada unidade.
O que é uma unidade de código UTF-16 e por que o hex ajuda
Um valor escalar Unicode no Plano Multilíngue Básico cabe em uma unidade de código de 16 bits. Caracteres fora desse plano — emojis, muitos scripts históricos e símbolos raros — usam um par surrogate: um surrogate alto na faixa U+D800–U+DBFF seguido de um surrogate baixo em U+DC00–U+DFFF. Depurar um dump de protocolo, uma carga de área de transferência ou um arquivo mal rotulado muitas vezes significa ler essas unidades como hexadecimal em vez de adivinhar qual byte é qual.
A codificação transforma seu texto em hex contínuo maiúsculo, de modo que cada dois dígitos hex sejam um byte e cada quatro dígitos sejam uma unidade de código sob a ordem de bytes que você selecionou. A decodificação inverte esse caminho: espaços em branco, dois-pontos, sublinhados e hifens na cadeia hex são ignorados, de modo que você cole dumps de linhas de log ou de capturas de pacotes sem um passo de limpeza à parte.
A resposta sempre informa quantas unidades de código e bytes foram produzidos, o que facilita comparar com um campo de comprimento em uma especificação binária. Como a conversão é trabalho de parse puramente local, entradas idênticas sempre geram saídas idênticas, sem desvio de modelo e sem dependência de rede.
Ordem de bytes, escolha de modo e regras de boa-formação
O modo padrão é encode: forneça texto simples e receba hex. Mude o modo para decode quando a entrada já for uma representação hex de bytes UTF-16. O endian padrão é be (big-endian), então U+0048 vira o par de bytes 00 48; escolha le para 48 00 little-endian, que corresponde a muitos layouts de memória Windows e ARM.
A ordem de bytes se aplica a cada unidade de código de forma independente; não há prefixo ou remoção automática de BOM — se você precisar de um BOM, adiciona ou remove você mesmo o conhecido padrão FEFF como unidades explícitas. A decodificação exige um comprimento hex que seja múltiplo de quatro após a limpeza, porque cada unidade de código são dois bytes.
Tanto na codificação quanto na decodificação, o fluxo é verificado quanto a surrogates sem par: uma unidade alta sem uma baixa em seguida, uma unidade baixa sem uma alta antes, ou um par truncado no fim da entrada, todos falham. Essa regra evita a corrupção silenciosa quando um dump foi cortado no meio de um caractere ou quando uma string já continha um surrogate solitário. Valores de mode ou endian inválidos também falham rápido, com uma mensagem específica do campo, para que os clientes corrijam a requisição sem adivinhar.
Onde executar e como funciona o preço
Para uma inspeção pontual — ler um dump UTF-16LE de uma exportação de registro do Windows, checar como um emoji se expande em duas unidades de código, ou confirmar que o hex big-endian de um parceiro corresponde ao seu texto — use a ferramenta gratuita no navegador.
Insira a chamada em um caderno de engenharia reversa, em um arnês de QA que afirma igualdade de formato de fio, ou em um fluxo de suporte em que os clientes colam hex e você precisa da string legível sem abrir um editor hexadecimal. Como a capacidade é trabalho de parse de tier A, a latência permanece baixa e não há custo de contêiner ou de modelo para remedir a cada deploy.
Casos de uso
Suporte e engenharia reversa
Decodifique dumps hex UTF-16 fornecidos por clientes de volta a texto legível, recusando fluxos truncados ou com surrogates sem par.
Perguntas frequentes
Qual é a diferença entre be e le?
be (big-endian) armazena o byte alto primeiro em cada unidade de 16 bits; le (little-endian) armazena o byte baixo primeiro. Escolha o layout que o seu formato de destino espera.
O que acontece com um surrogate sem par?
Nenhum hex ou texto parcial é retornado, e a chamada que falhou não é cobrada.
Posso colar hex com espaços ou dois-pontos?
Sim, no modo decode. Espaços, sublinhados, dois-pontos e hifens são removidos antes da análise. Os dígitos restantes devem formar unidades de código completas de dois bytes.
Como um emoji aparece em UTF-16?
Ele ocupa duas unidades de código, o chamado par de surrogates: uma metade alta entre D800 e DBFF seguida de uma metade baixa entre DC00 e DFFF. O hex mostra, portanto, duas unidades para um único caractere visível, e as duas precisam ficar juntas.
A ferramenta acrescenta uma marca de ordem de bytes?
Não. Nada é acrescentado no início ao codificar, e nada é removido ao decodificar. Se o seu arquivo ou protocolo precisa da marca FEFF, inclua-a você mesmo como uma unidade explícita, ou tire-a do dump antes de colar.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"text": "Hi"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.utf16",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Pares surrogate para caracteres fora do Plano Multilíngue Básico permanecem intactos; um surrogate alto ou baixo sem par falha com um erro claro de invalid_input, em vez de produzir bytes ambíguos. O mesmo caminho determinístico alimenta o formulário gratuito do navegador e a API a US$ 0,002 por requisição bem-sucedida.
Onde executar e como funciona o preço
Cada chamada de API bem-sucedida custa US$ 0,002; a validação que falha, incluindo surrogates sem par e hex malformado, não é cobrada, então sondar dumps ruins não esgota o saldo pré-pago. As respostas são JSON determinístico com o resultado convertido, o mode e o endian resolvidos e as contagens de unidades de código e de bytes.
Casos de integração
Depuração de protocolo e formato binário
Transforme texto humano em hex UTF-16 big ou little-endian para comparar com capturas de pacotes, buffers de API do Windows ou exemplos de especificação.
Geração de fixtures e dados de teste
Gere fixtures hex determinísticas para testes unitários que verificam comprimento de codificação, pares surrogate e layouts específicos de endian.
Perguntas técnicas
O que o modo encode retorna?
Hex contínuo maiúsculo dos bytes UTF-16 do seu texto sob a ordem de bytes escolhida, além das contagens code_units e bytes. Nenhum BOM é adicionado automaticamente.
Quanto custa a API?
US$ 0,002 por requisição bem-sucedida. A ferramenta do navegador é gratuita. Entrada inválida não é cobrada.