Invisible Texts

Ferramenta de texto

Gerador de Espaço de Largura Zero

Copie o espaço de largura zero (U+200B). Um caractere de formato de largura zero que diz a navegadores e motores de texto onde uma linha tem permissão para quebrar, sem mostrar um hífen ou ocupar espaço.

Gerador ao vivo
Gerar Espaço de Largura Zero
Escolha quantos caracteres U+200B copiar
Saída Negrito

Para que serve o espaço de largura zero

O espaço de largura zero (ZWSP, U+200B) é um caractere de formato Unicode sem glifo visível e com largura de avanço zero. Sua função é dizer a um motor de renderização onde uma linha tem permissão para quebrar. O elemento <wbr> do HTML se comporta de forma idêntica. Navegadores e editores de texto consultam essas oportunidades de quebra ao quebrar strings longas — uma URL longa com caracteres U+200B colocados após cada barra quebra organizadamente naqueles pontos em vez de estourar o contêiner. O caractere foi criado para scripts como tailandês, lao e khmer, que não usam espaços entre palavras; inserir U+200B entre palavras permite que o renderizador as quebre. Em texto latino ele tem um conjunto diferente de usos: quebrar @menções e #hashtags do Twitter para que não virem link automaticamente, dividir palavras compostas longas em alemão, e marcar pontos de quebra discretamente dentro de identificadores longos.

Onde U+200B é genuinamente útil

Quebrar URLs e strings longas

Coloque U+200B após cada barra ou ponto em uma URL longa e o navegador quebra naqueles pontos em vez de estourar o layout. Nenhum hífen aparece na quebra.

Evitar auto-links em posts

Twitter e outras plataformas transformam @username e #hashtag em links. Um espaço de largura zero entre o símbolo e o texto quebra a correspondência sem mudar como ele lê.

Controle de quebra de palavra em CSS

Combine U+200B com word-break: keep-all para marcar pontos permitidos de quebra em texto CJK enquanto suprime quebras em outros lugares. A spec CSS Text cita isso como o padrão pretendido.

Watermarking de texto

Insira U+200B em posições escolhidas de um documento e você tem uma impressão digital que sobrevive a copiar-colar mas é invisível para os leitores. Cada destinatário recebe um padrão diferente.

Como U+200B se comporta nas bordas

U+200B é um caractere de formato (categoria geral Cf), não um espaço. Essa distinção importa. Ele não é whitespace, então o trim() do JavaScript não o remove — mas também é invisível, então uma string que parece idêntica a um humano pode diferir no nível de byte. Pesquisadores de segurança usaram essa propriedade para esconder payload em identificadores: duas strings que renderizam como "admin" podem ser diferentes para um banco de dados se uma contiver U+200B. As divulgações Trojan Source (CVE-2021-42574 e CVE-2021-42694) documentaram como caracteres Unicode invisíveis podem fazer código-fonte compilar de forma diferente do que ele lê. Do lado da renderização, U+200B é amplamente suportado em navegadores mas removido por apps de mensagens que saneam input — WhatsApp e TikTok o eliminam de mensagens e bios, enquanto Discord o trata de forma inconsistente entre campos. Quando uma plataforma o remove, a alternativa costuma ser um caractere visível-mas-em-branco como U+2800 (braille em branco).

Notas antes de usar U+200B

  • U+200B marca uma oportunidade de quebra; não força uma. O renderizador ainda decide se quebra com base na largura disponível.
  • Ele nunca mostra um hífen no ponto de quebra. Para um hífen visível na quebra, use o hífen suave (U+00AD).
  • O trim() do JavaScript não remove U+200B porque ele não é classificado como whitespace. Use uma regex que mire U+200B se precisar removê-lo.
  • Para impedir uma quebra em vez de permitir, use U+2060 (word joiner) — o oposto de U+200B, e o substituto moderno do U+FEFF obsoleto.
  • Apps de mensagens que saneam input costumam remover U+200B. Para mensagens ou nomes de usuário em branco, mude para U+2800 ou U+3164.
  • Colocar U+200B dentro de uma hashtag ou @menção quebra o link. Útil quando você quer mencionar uma regra @media do CSS sem disparar um link de perfil.

Onde o espaço de largura zero funciona

U+200B é suportado em todo navegador moderno e na maioria dos editores de texto, onde funciona como uma oportunidade de quebra de linha. A spec do CSS Text Module o referencia explicitamente ao lado do elemento <wbr> como a forma de marcar pontos de quebra. Em apps de mensagens e redes sociais, o suporte é mais irregular. WhatsApp, Instagram e Discord o aceitam em alguns campos e o removem em outros. O TikTok o elimina das bios. Plataformas de jogos raramente o aceitam em nomes de usuário. A regra prática: em um navegador ou editor de texto, U+200B é confiável; em um app de mensagens ou input social, teste antes e mantenha U+2800 ou U+3164 como alternativa.

Perguntas comuns sobre U+200B

O que o espaço de largura zero realmente faz?

Ele marca uma posição onde uma linha tem permissão para quebrar. O caractere em si é invisível e não tem largura, mas um navegador ou motor de texto que está decidindo onde quebrar uma linha longa trata U+200B como um ponto de quebra aceitável — sem inserir um hífen.

Como U+200B difere de um espaço comum?

Um espaço comum (U+0020) tem largura visível e é whitespace. U+200B tem largura zero, é um caractere de formato e não whitespace, e nunca insere um espaço visível. Sua única função é permitir quebras de linha em um ponto escolhido dentro de uma palavra ou string.

Como eu copio caracteres de espaço de largura zero?

Defina a contagem acima e clique em Copiar. Os caracteres vão para sua área de transferência sem indicação visível, o que é esperado — cole no campo de teste para confirmar que chegaram.

O espaço de largura zero pode ser detectado?

Sim. Ele tem um ponto de código fixo (U+200B), então qualquer ferramenta que inspecione Unicode pode encontrá-lo. Uma busca mirando esse ponto de código vai localizar todas as instâncias. Ele é invisível para humanos, não para software.

Por que meu espaço de largura zero foi removido?

O saneador de input da plataforma o removeu. Apps de mensagens e plataformas sociais costumam filtrar caracteres de formato de largura zero para evitar abuso. Mude para braille em branco (U+2800) ou preenchedor Hangul (U+3164), que são classificados como símbolo e letra e tendem a sobreviver à filtragem.

U+200B é a mesma coisa que a tag <wbr> do HTML?

Na prática, sim. A documentação do MDN afirma que <wbr> se comporta como o ponto de código U+200B. Ambos marcam uma oportunidade de quebra de linha sem glifo visível e sem hífen. Use <wbr> em markup HTML; use U+200B em texto puro.