Como dividir texto em blocos sem separar emojis e acentos

Escolha caracteres visuais ou linhas, interprete o JSON e reconstrua o texto diferenciando caracteres, bytes e tokens.

Guia práticoAtualizado Tempo estimado de leitura: 4 min
Nesta página

Escolher a unidade antes do tamanho

Um limite de cem caracteres pode significar coisas diferentes conforme o aplicativo. O contador do Snipshed mede pontos de código; o divisor trabalha com caracteres visuais ou linhas. Um caractere visual pode conter vários pontos de código e ocupar várias unidades UTF-16. Bytes e tokens de modelos de linguagem são outras medidas.

Confira como o destino conta antes de usar blocos para cumprir um limite. Cem caracteres visuais não garantem cem bytes, unidades UTF-16 ou tokens. Se o aplicativo de destino possui contador próprio, verifique o bloco definitivo nele. Não escolha o tamanho apenas pela aparência de uma palavra e mantenha o original até a aceitação do texto pretendido.

Não separar os componentes de um emoji

No modo de caracteres, o navegador segmenta grupos visuais completos. A sequência mulher, junção de largura zero e computador portátil forma 👩‍💻 e permanece unida. Uma e seguida de U+0301 também fica com seu acento combinado, embora o acento seja armazenado como ponto de código separado. As palavras podem ser divididas entre dois blocos.

A amostra A👩‍💻éBC contém cinco caracteres visuais, oito pontos de código e dez unidades UTF-16. Com tamanho dois, produz três blocos: A👩‍💻, éB e C. O último pode ser menor. O inspetor Unicode revela os componentes; não normaliza a entrada nem substitui automaticamente um acento combinado por outra representação.

  1. Abra a amostra Unicode e copie sem acrescentar linhas.
  2. Cole em Dividir texto em blocos.
  3. Escolha caracteres visuais e tamanho 2.
  4. Confira os três blocos e o emoji completo.

Interpretar a lista JSON baixada

A saída é uma lista JSON de strings, não vários arquivos independentes. Aspas, vírgulas e colchetes pertencem à representação da lista. Quebras de linha aparecem como sequências de escape nas strings. Para colar um bloco em um formulário, use o conteúdo dele, sem as aspas ou escapes do documento JSON.

Para reconstruir a entrada do modo de caracteres, leia a lista como JSON e concatene as strings sem separador. Não substitua todas as barras invertidas como texto simples: algumas podem pertencer ao original. Use Formatar JSON para inspecionar a estrutura. Guardar o arquivo JSON preserva os limites dos blocos para revisão ou processamento, enquanto a concatenação remove esses limites intencionalmente.

[
  "A👩‍💻",
  "éB",
  "C"
]

Agrupar linhas e manter as vazias

No modo de linhas, tamanho dois agrupa duas linhas consecutivas, incluindo as vazias. Com A, uma linha vazia, B e C, o primeiro bloco contém A e uma quebra final; o segundo contém B e C separados por uma quebra. Uma linha vazia não desaparece por não ter letras.

Esse modo normaliza CRLF e CR para LF. Para reconstruir o texto normalizado, leia as strings JSON e una com uma quebra LF entre blocos. Os bytes exatos do arquivo original não são preservados. Se um PDF introduziu quebras no meio das frases, decida primeiro se deve limpá-las: agrupar linhas não recompõe parágrafos nem recupera automaticamente a diagramação original.

Conferir limites e reconstrução

A entrada aceita até 100000 unidades UTF-16. O tamanho do bloco deve ficar entre 1 e 10000 elementos, e são permitidos até 1000 blocos. Se essa quantidade for superada, aumente o tamanho ou reduza a entrada. Mudar para linhas pode alterar o resultado porque a unidade contada também muda.

Calcule, examine o primeiro bloco, uma junção intermediária e o último, e baixe quando estiver satisfeito. Editar texto ou opções invalida o resultado anterior. Para conferir caracteres, compare a reconstrução com o original; para linhas, compare a versão normalizada em LF. Mantenha a fonte para recuperar codificação ou quebras originais: a lista resultante não registra essas propriedades do arquivo.

EXPERIMENTE

Cinco caracteres visuais em três blocos

Baixe unicode-blocks.txt e copie sem acrescentar linhas. Escolha caracteres visuais, tamanho 2 e divida o texto.

A👩‍💻éBC

A lista contém A👩‍💻, éB e C. Emoji e acento combinado permanecem unidos; concatenar os três blocos recupera a entrada.

Com o inspetor Unicode, confira oito pontos de código e dez unidades UTF-16. Não conte aspas e vírgulas da representação JSON como parte do texto original.