Se você já tentou enviar uma mensagem vazia no Telegram, provavelmente descobriu que nem o sinal de espaço nem o sinal de nova linha (Alt + Enter) são enviados - o campo de entrada é simplesmente limpo. Ao mesmo tempo, você pode ver que outras pessoas literalmente lhe enviam um espaço vazio e conseguem. Onde está a magia aqui? Se você quiser uma resposta curta-eles inserem o caractere" quebrado " u + 3164. Você pode copiá - lo dos colchetes e usar: "ㅤㅤㅤ". Se você quiser uma resposta mais detalhada, a seguir diremos de onde vem o texto invisível, como obtê-lo e usá-lo, por que você não deve usá-lo no código e quais outros caracteres existem.

Símbolo invisível – como funciona?

Vamos começar a explicação com tabelas de caracteres e codificações. Qualquer computador no nível do hardware entende 2 caracteres: 0 e 1. Isso não é conveniente para as pessoas, porque ainda estamos mais acostumados a letras que são formadas em palavras, frases, parágrafos e assim por diante. Para trabalhar com essas letras sem problemas, criamos um esquema muito simples-pegamos as letras em ordem e damos a elas números únicos: a = 1, b = 2, c = 3 e assim por diante. Também damos números exclusivos a letras maiúsculas, sinais (ponto, vírgula, ponto de interrogação e assim por diante), espaços em branco e números – uma lista apresenta um identificador exclusivo que é atribuído a cada caractere possível. Esta lista é chamada de tabela de código de caractere e a primeira tabela de código é reconhecida como ASCII:

A segunda metade está vazia. Destina-se a personagens regionais. A tabela em si é como uma informação de referência. Há também uma codificação - um conjunto de instruções para descriptografar esta tabela. As codificações surgiram devido aos padrões regionais. Eles são necessários para ler os caracteres "corretamente". Se tomarmos a codificação que era comum no CIS naquela época, então haverá uma instrução nele: "para obter a letra" г "use 8x3 em ASCII" ; se tomarmos a codificação que foi usada na Alemanha naquela época, então será escrito: "para obter a letra" β"use 8x3".



Como era terrivelmente inconveniente por causa da localização em vários idiomas, uma nova tabela de caracteres, Unicode, foi inventada e padronizada. Unicode pode conter mais de 1.000.000 caracteres. No momento, cerca de 100.000 caracteres foram adicionados ao Unicode – portanto, outros 90% das células estão disponíveis. Uma codificação UTF universal foi inventada para Unicode para tornar mais fácil para os designers desenhar fontes (sim, para cada codificação separada, os designers precisam desenhar uma fonte separada).

Isso é fundo suficiente-agora é hora de descobrir de onde vem o personagem invisível. É tudo sobre os bugs do Unicode: alguns caracteres especiais (controle e espaço em branco) não se comportam como pretendido. O grupo mais interessante de bugs para nós é o personagem invisível. O ponto é que o sinal deve ser especial e deve ser exibido como um espaço em branco muito pequeno, mas a codificação o percebe como um caractere completo (como uma letra ou um número) e o exibe como um grande espaço. Você já deve ter adivinhado como a área invisível como um sinal completo pode ser usada-para inserir um espaço onde não é fornecido.

Texto invisível – como copiar e colar?

Para começar, informaremos as tristes notícias: mesmo esses bugs de codificação estão sendo corrigidos gradualmente. Anteriormente (em 2012), um truque era popular em "Vkontakte" – era possível inserir um caractere de controle de nova linha no status e o status foi dividido em 2 linhas. Agora você não pode fazer isso - o site processa a saída de dados corretamente e essa inscrição não quebra mais a string:

Além do &nsbp, redes sociais e mensageiros cortaram todo o controle e caracteres especiais - você não pode virar o texto de cabeça para baixo ou exibi-lo para trás se não for fornecido inicialmente pelo idioma. Existem serviços como https://textinvert.ru/, que permitem alterar o texto, mas não o viram de cabeça para baixo, mas pegam letras semelhantes em outros idiomas. Requer um algoritmo especial. É extremamente difícil criar um grande Texto vazio agora (embora ainda seja possível), mas os emojis invisíveis e o sinal de conjunto vazio que quebrou muitas fontes também são corrigidos agora. Tudo o que resta é enviar mensagens vazias como essas:

Unicode U+3164 para inserir um caractere invisível

Então, o mais útil é um espaço invisível, também conhecido como uma "string vazia". Na verdade, existem 3 desses caracteres, Aqui estão seus códigos:

Código do personagem

Personagem

U+115F

U+1160

U + 3164

Para ver o caractere, clique duas vezes nele na tabela. "Word", a propósito, destaca ligeiramente o símbolo em cinza.

Quanto ao resto dos personagens, ainda existem caracteres de espaço em branco com endereços na área de &#8192- & #8202, mas nós os testamos e descobrimos que os mensageiros os percebem como espaços comuns – portanto, eles não são de interesse. Se você precisar deles de qualquer maneira ou quiser testá-los sozinho em diferentes serviços – aqui estão mais alguns espaços e caracteres de controle:

Código do personagem

O que significa?

Personagem

U + 00A0

Espaço sem espaço

 

U+2003

Espaço Em

U+2007

Espaço encaracolado (o que quer que isso signifique)

U+2008

Espaço de pontuação

U+2009

Espaço estreito

U+205F

Espaço médio de matemática

U+3000

Espaço ideográfico

 

Quanto aos três caracteres acima, inicialmente eles são espaços reservados para sobreposição de caracteres coreanos. Eles são considerados personagens completos, embora sejam Enchimentos. Talvez esse comportamento se deva ao fato de que, quando um espaço reservado é usado, o hieróglifo não deve ser transferido para uma nova linha. Se o caractere for considerado um espaço em branco, uma transferência pode ocorrer (depende de outros caracteres de controle). De qualquer forma, você pode copiar um caractere vazio da tabela e colá-lo onde precisar. Mas onde ele pode ser inserido-vamos ver abaixo.

Texto invisível no WhatsApp, VK, Instagram, Discord e jogos

Como já dissemos, todas as principais plataformas garantiram que os caracteres de controle, especiais e outros "não padronizados" sejam cortados durante o processamento. Portanto, o escopo de aplicação de tais símbolos é extremamente limitado, embora em alguns lugares eles ainda possam ser usados.

WhatsApp, Viber, Telegram:

Se você inserir um espaço em branco normal, o WhatsApp, como outros mensageiros, não permitirá que você envie esta mensagem – o botão "Enviar" não aparecerá. U+3164 pode ser enviado. O resultado é uma mensagem vazia.

VK, Facebook Messenger:

Existe a mesma situação que com mensageiros-você pode enviar mensagens vazias para mensagens privadas. A propósito, você também pode colocar U+3164 no status VK – ele será exibido como uma linha vazia. Se você colocar um espaço regular, o status será excluído e a inscrição "Definir status" ficará visível.

TikTok, Instagram: Não há opção de usar o espaço oculto. Ambas as plataformas consideram o personagem do espaço oculto como um espaço regular.

Discordia:

O Discord permite que você envie mensagens vazias. Ao mesmo tempo, se você tentar criar um canal com um nome vazio, o Discord não permitirá que você faça isso:

DEMONSTRACAO

Se eu colocar um caractere invisível no Skype, o status será "offline"?

Não, você pode escrever qualquer texto na barra de status da conta( incluindo um espaço oculto), o status "online" ou "offline" não será alterado.

Quais são os problemas com o caractere nulo na programação?

Você não deve usá-los em seu código se não quiser estragá-lo. Se você precisar usar um caractere para armazenamento ou saída, escreva-o em uma variável ou na saída com um código Unicode. Por que é melhor não usá-lo? Aqui está um exemplo para você:

Como você pode ver, declaramos uma variável que possui espaços no nome, que o Python proíbe. Ao mesmo tempo, PyCharm avisa que algo está errado com essa variável:

Não só você está violando as regras do idioma, Você também está colocando um raio em suas rodas: para acessar uma variável, você precisará copiar e colar manualmente seu nome. Se você está fazendo algum projeto para si mesmo e quer complicar sua vida, você pode usar esses espaços, mas se você estiver trabalhando em algum projeto sério, nem tente fazer isso, caso contrário você estará em apuros.

Um personagem especial pode quebrar o layout?

Em teoria, isso é possível desde que o layout seja feito de forma torto ou herde padrões ruins. É melhor não usar esses caracteres no layout, se você não quiser, se você não quiser que tudo se quebre um dia.

É possível usar esses símbolos para hackear?

Tecnicamente, um dos caracteres de controle – '\0 ' - pode ser usado para hackear o sistema por meio de um programa escrito em C. um terminador nulo indica ao programa que a linha terminou e o código malicioso pode ser escrito após o terminador. Mas isso é muito difícil, porque em primeiro lugar, você precisa encontrar um programa que processe incorretamente as linhas de entrada e, em seguida, também permite que você execute código malicioso da memória de outra pessoa. Cerca de 15 anos atrás, era uma maneira popular de Hackear, agora é mais como uma exposição de Museu de hacking.

DEMONSTRACAO

Se eu colocar um caractere invisível no Skype, o status será "offline"?

Não, você pode escrever qualquer texto na barra de status da conta( incluindo um espaço oculto), o status "online" ou "offline" não será alterado.

Quais são os problemas com o caractere nulo na programação?

Você não deve usá-los em seu código se não quiser estragá-lo. Se você precisar usar um caractere para armazenamento ou saída, escreva-o em uma variável ou na saída com um código Unicode. Por que é melhor não usá-lo? Aqui está um exemplo para você:

Como você pode ver, declaramos uma variável que possui espaços no nome, que o Python proíbe. Ao mesmo tempo, PyCharm avisa que algo está errado com essa variável:

Não só você está violando as regras do idioma, Você também está colocando um raio em suas rodas: para acessar uma variável, você precisará copiar e colar manualmente seu nome. Se você está fazendo algum projeto para si mesmo e quer complicar sua vida, você pode usar esses espaços, mas se você estiver trabalhando em algum projeto sério, nem tente fazer isso, caso contrário você estará em apuros.

Um personagem especial pode quebrar o layout?

Em teoria, isso é possível desde que o layout seja feito de forma torto ou herde padrões ruins. É melhor não usar esses caracteres no layout, se você não quiser, se você não quiser que tudo se quebre um dia.

É possível usar esses símbolos para hackear?

Tecnicamente, um dos caracteres de controle – '\0 ' - pode ser usado para hackear o sistema por meio de um programa escrito em C. um terminador nulo indica ao programa que a linha terminou e o código malicioso pode ser escrito após o terminador. Mas isso é muito difícil, porque em primeiro lugar, você precisa encontrar um programa que processe incorretamente as linhas de entrada e, em seguida, também permite que você execute código malicioso da memória de outra pessoa. Cerca de 15 anos atrás, era uma maneira popular de Hackear, agora é mais como uma exposição de Museu de hacking.