Categoria
Codificação e dados
Todas as ferramentas e artigos desta categoria, reunidos em um só lugar.
Ferramentas
Códec Base64, Base32, Hex e Porcentual
Codifica texto para Base64, Base64 seguro para URL, Base32, hexadecimal ou codificação porcentual, e decodifica qualquer um deles de volta. Tolera preenchimento e espaços em branco ausentes, e sinaliza resultados binários (não UTF-8). É executado inteiramente no seu navegador.
Conversor de tempo Unix
Digite um timestamp Unix — segundos, milissegundos, microssegundos ou nanossegundos, detectado automaticamente — ou uma data ISO-8601, e leia de volta em todos os formatos comuns. Tudo no seu navegador.
Conversor JSON ↔ YAML
Converta JSON para YAML em estilo de bloco ou YAML de volta para JSON, inteiramente no seu navegador. Erros de análise apontam a linha e a coluna exatas, e notas de conversão sinalizam as bordas com perda, como comentários descartados e âncoras expandidas.
Formatador e Validador JSON
Valide, formate, minifique e ordene JSON. Erros de análise apontam a linha, coluna e o caminho exatos; chaves duplicadas são sinalizadas; e números grandes são preservados exatamente. Roda inteiramente no seu navegador.
Artigos
A Anatomia de uma URL
Toda URL é construída a partir do mesmo punhado de partes definidas pela RFC 3986: esquema, autoridade (userinfo, host, porta), caminho, query e fragmento. O que cada parte significa, como um parser as distingue e onde os limites realmente caem.
LerA Gramática JSON: Seis Tipos e Algumas Regras Estritas
JSON é menor do que parece. O formato inteiro são seis tipos de valor e um punhado de caracteres estruturais, governados por regras mais estritas do que a maioria lembra: sem comentários, sem vírgulas finais e chaves que precisam ser strings entre aspas.
LerBytes, pontos de código e UTF-8
A diferença entre um caractere e um byte, por que existem o Unicode e o UTF-8, e o que isso tem a ver com o Base64.
LerJSON vs YAML: O Que Converte Limpo e o Que Não Converte
O YAML foi projetado para que todo documento JSON também seja YAML válido, e é por isso que a conversão entre eles geralmente simplesmente funciona. A parte interessante são as bordas: comentários, âncoras, múltiplos documentos e tipos exclusivos do YAML que não têm equivalente em JSON.
LerO Que o Tempo Unix Realmente É
O tempo Unix é um único inteiro: o número de segundos desde 1970-01-01T00:00:00Z, a época (epoch). É independente de fuso horário, compacto e ordenável, e por isso sustenta quase todo relógio de sistema, linha de log e timestamp de API. Convertê-lo em uma data de calendário é pura aritmética.
LerBase64 e Base64URL, explicados
Como dados binários viram texto seguro para transmitir, por que existe o preenchimento e o que muda na variante segura para URL.
LerCoerção de Tipos no YAML e o Problema da Noruega
O YAML adivinha o tipo de todo escalar sem aspas, e seus palpites são surpreendentes: o código de país NO vira false, uma versão como 1.0 vira número, e um código com zeros à esquerda perde os zeros. Conhecer a regra é a chave para uma conversão segura.
LerNúmeros JSON e a Armadilha da Precisão
O JSON não impõe limite ao tamanho ou à precisão de um número, mas a maioria dos parsers converte silenciosamente todo número para um float de 64 bits. Essa incompatibilidade corrompe silenciosamente inteiros grandes e decimais exatos, e por isso um formatador deveria preservar os dígitos originais.
LerQuery Strings: Parâmetros, Sinais de Mais e Chaves Repetidas
A parte de uma URL após o ponto de interrogação parece simples mas esconde ambiguidade real: como os parâmetros são separados, por que um sinal de mais às vezes significa espaço, como chaves repetidas se comportam e por que não há um único padrão governante.
LerSegundos, Milissegundos, Microssegundos, Nanossegundos: Distinguindo Unidades de Época
O mesmo instante pode ser escrito como 1700000000, 1700000000000 ou maior, dependendo de o timestamp contar segundos, milissegundos, microssegundos ou nanossegundos. Confundi-los é um bug clássico. Quase sempre dá para saber qual é qual pela magnitude do número.
LerBase64URL e o alfabeto seguro para URLs
Por que JWTs e PKCE usam um alfabeto Base64 diferente, os dois caracteres que mudam e o que acontece com o preenchimento.
LerChaves Duplicadas em JSON: Legais, Perigosas e Dignas de Detecção
A sintaxe JSON permite que a mesma chave apareça mais de uma vez em um objeto, mas a especificação não diz o que isso significa. Parsers diferentes resolvem isso de formas diferentes, o que torna chaves duplicadas uma fonte silenciosa de bugs e até de problemas de segurança.
LerCodificação de URL e Hosts Internacionalizados
URLs são restritas a um pequeno conjunto de caracteres ASCII, então todo o resto é codificado. A codificação percent cuida de caminhos e queries; o punycode cuida de nomes de host não-ASCII. Como ambos funcionam, e por que hosts internacionalizados são uma preocupação de phishing.
LerJSON e YAML na Prática: APIs, Declarações e Orquestração
A divisão não é aleatória: APIs e declarações máquina-a-máquina tendem a ser JSON, enquanto arquivos de orquestração e pipeline escritos por humanos tendem a ser YAML. Entender por que cada domínio escolheu o que escolheu explica quando converter entre eles é útil.
LerO Problema do Ano 2038
Um inteiro de 32 bits com sinal só consegue contar segundos até 2147483647, que cai em 2038-01-19T03:14:07Z. Um segundo depois ele transborda e dá a volta para um número negativo, jogando os sistemas afetados de volta a 1901. É o sucessor mais silencioso do Y2K, e a correção é um inteiro mais largo.
LerÂncoras, aliases e merge keys em YAML
O YAML pode definir um valor uma vez e reutilizá-lo com uma âncora e um alias, e mesclar um mapping em outro com uma merge key. Nada disso existe em JSON, então a conversão expande e duplica tudo. Este artigo cobre a sintaxe, o que acontece na conversão, e a armadilha de negação de serviço que eles habilitam.
LerEscapes de string e Unicode em JSON
Dentro de uma string JSON, alguns caracteres precisam ser escritos como escapes, e qualquer caractere pode ser escrito como \uXXXX. As regras são poucas mas estritas, e a que pega as pessoas é como caracteres além do plano básico, como emoji, precisam de um par substituto (surrogate pair).
LerISO 8601, RFC 3339 e a Data HTTP
Depois que um timestamp Unix é convertido de volta em uma data humana, ele é escrito em um de poucos formatos de texto padrão. O ISO 8601 é o padrão amplo, o RFC 3339 é seu perfil estrito para a internet, e a data HTTP é a exceção. Saber a diferença evita muita dor de cabeça com parsing.
LerOnde o Base64 aparece: data URIs, MIME, PEM e Basic auth
Os lugares reais em que binário é embrulhado em texto, o custo de tamanho de fazer isso e por que Base64 em um cabeçalho de autenticação não é criptografia.
LerBase32, explicado
Por que o Base32 troca tamanho por um alfabeto sem ambiguidades e insensível a maiúsculas, como funciona seu agrupamento de 5 bits, e onde ele aparece (segredos TOTP, endereços onion, DNS).
LerBlock scalars e strings multilinha em YAML
O YAML tem duas formas de escrever uma string multilinha, e elas tratam quebras de linha de modo diferente: o estilo literal as mantém, o estilo folded as transforma em espaços. Indicadores de chomping então decidem o que acontece com a quebra de linha final. Errar isso é por que um script ou certificado embutido sai sutilmente corrompido.
LerPor Que o Tempo Unix Ignora os Segundos Bissextos
O UTC ocasionalmente insere um segundo bissexto para se manter alinhado com a rotação da Terra, mas o tempo Unix finge que todo dia tem exatamente 86.400 segundos. Essa simplificação deliberada significa que um timestamp Unix não é uma contagem verdadeira de segundos decorridos desde a época — e é a escolha certa para o tempo civil.
LerVírgulas finais, comentários e a família JSON5
O JSON estrito não tem comentários nem vírgulas finais, o que surpreende quem usa um editor que aceita ambos. A razão é que o JSON é um formato mínimo de interchange, e as variantes tolerantes (JSONC, JSON5) são coisas separadas. Saber qual é qual evita arquivos de config que quebram em outra ferramenta.
LerCodificação hexadecimal (Base16), explicada
Como o hexadecimal representa cada byte com dois caracteres, por que é a forma padrão de imprimir bytes brutos, e como ele se compara ao Base64 e ao Base32.
LerFormatação, minificação e JSON canônico
O espaço em branco não muda o que o JSON significa, então JSON identado e minificado são o mesmo dado. Mas quando o JSON é assinado ou hasheado, os bytes exatos importam, e é aí que entra o JSON canônico: uma forma determinística de serializar o mesmo dado exatamente na mesma string toda vez.
LerURLs relativas e como elas resolvem
Uma URL relativa deixa de fora o esquema e o host e é completada contra uma URL base. As regras de como um navegador preenche o resto, e como ./ e ../ e uma barra inicial mudam o resultado, explicam muitos links quebrados e algumas surpresas de segurança.
LerCodificação por porcentagem (codificação de URL), explicada
Por que as URLs escapam certos caracteres como %XX, quais caracteres é seguro deixar como estão, e em que a codificação por porcentagem difere do Base64.
LerURLs enganosas: lendo além dos truques
URLs são uma ferramenta favorita para phishing porque o destino real é fácil de disfarçar. O truque do userinfo, os parâmetros de redirecionamento e os caracteres parecidos, todos fazem um link hostil parecer amigável. Este artigo mostra os disfarces comuns e o único hábito confiável para encontrar o host real.
LerBase16, Base32, Base64 e codificação por porcentagem comparadas
Um olhar lado a lado para as quatro codificações de texto: seus alfabetos, sobrecarga de tamanho, legibilidade, e quando recorrer a cada uma.
LerComo funciona o diff de texto
Um diff encontra o menor conjunto de inserções e remoções que transforma um texto em outro. Por baixo está a maior subsequência comum: as linhas que as duas versões compartilham, na mesma ordem, formam a espinha dorsal inalterada, e todo o resto é uma adição ou uma remoção.
LerComo ler um diff
Como ler um diff linha a linha: linhas inalteradas, adicionadas e removidas, os marcadores de mais e menos, os números de linha dos dois lados, o destaque palavra a palavra e o que ignorar espaços e ignorar maiúsculas realmente mudam. Mais o que um diff não consegue dizer.
LerDiffs em nível de palavra e de caractere
Um diff de linha marca a linha inteira como alterada mesmo quando um único caractere mudou. Diffs em nível de palavra e de caractere destacam exatamente a parte da linha que mudou, o que é muito mais fácil de ler para prosa, linhas longas e edições pequenas. Este artigo cobre a diferença e quando cada lente é a certa.
LerDiffs de três vias e conflitos de merge
Um diff normal compara duas versões e não consegue dizer qual delas mudou. Um diff de três vias adiciona um ancestral comum, que é o que torna o merge automático possível e o que produz os marcadores de conflito <<<<<<< ======= >>>>>>>. Este artigo explica o terceiro insumo e como ler e resolver um conflito.
LerEdições mínimas: por que um diff pode parecer errado
Um diff mostra o menor conjunto de inserções e remoções que transforma um texto no outro. Como o menor conjunto não é único e o algoritmo precisa escolher, um diff pode alinhar linhas de formas contraintuitivas, culpando o bloco errado ou dividindo uma seção movida. Saber disso torna diffs estranhos legíveis.
LerLendo a estrutura do XML
XML é uma árvore de elementos construída a partir de um punhado de partes: uma declaração opcional, elementos com atributos, texto e algumas construções especiais. Uma vez que você consegue nomear cada parte e ver como elas se aninham, ler um documento desconhecido de cima a baixo vira rotina em vez de um jogo de adivinhação.
LerNamespaces XML explicados
Quando dois vocabulários XML usam o mesmo nome de elemento para coisas diferentes, namespaces os mantêm separados vinculando um prefixo a uma URI única. O prefixo é apenas um atalho local; a URI é a identidade real. Entender essa divisão resolve a maior parte da confusão com namespaces.
LerXML bem formado vs válido
Boa formação é a linha de base do XML: uma raiz, tags aninhadas e correspondidas corretamente, atributos entre aspas e especiais escapados. Validade é uma afirmação mais forte e separada de que um documento também segue um schema. Um parser rejeita XML mal formado de imediato, que é por que estas regras vêm primeiro.
LerCDATA, comentários e instruções de processamento
Nem tudo em XML é um elemento. Seções CDATA guardam texto cru que de outra forma precisaria de escape, comentários anotam sem afetar o conteúdo, e instruções de processamento carregam direções para uma aplicação. Reconhecer estas três impede que pareçam ruído misterioso.
Ler