Si vous avez déjà essayé d'envoyer un message vide dans Telegram, vous avez probablement découvert que ni le signe espace ni le signe de nouvelle ligne (Alt + Entrée) ne sont envoyés - le champ de saisie est simplement effacé. En même temps, vous pouviez voir que d'autres personnes vous envoyaient littéralement un espace vide, et elles réussissaient. Où est la magie ici? Si vous voulez une réponse courte-ils insèrent le caractère" cassé " u+3164. Vous pouvez le copier à partir des crochets et utiliser: "ㅤㅤㅤ". Si vous souhaitez une réponse plus détaillée, nous vous indiquerons ci-dessous d'où vient le texte invisible, comment l'obtenir et l'utiliser, pourquoi vous ne devriez pas l'utiliser dans le code et quels sont les autres caractères.

Symbole invisible-comment ça marche?

Commençons l'explication avec des tables de caractères et des encodages. Tout ordinateur au niveau matériel comprend 2 caractères: 0 et 1. Ce n'est pas pratique pour les gens, car nous sommes encore plus habitués aux lettres qui sont formées en mots, phrases, paragraphes, etc. Pour travailler avec ces lettres sans aucun problème, nous avons mis au point un schéma très simple – nous prenons les lettres dans l'ordre et leur donnons des nombres uniques: a = 1, b = 2, c = 3 et ainsi de suite. Nous donnons également des nombres uniques aux lettres majuscules, aux signes (point, virgule, point d'interrogation, etc.), aux espaces et aux nombres – une liste se profile un identifiant unique qui est attribué à chaque caractère possible. Cette liste s'appelle la table de codes de caractères, et la première table de codes reconnue était ASCII:

La seconde moitié est vide. Il est destiné aux caractères régionaux. Le tableau lui-même est comme une information de référence. Il existe également un codage - un ensemble d'instructions pour déchiffrer cette table. Les encodages sont apparus en raison des normes régionales. Ils sont nécessaires pour lire les caractères "correctement". Si nous prenons l'encodage qui était courant dans la CEI à cette époque, alors il y aura une instruction: "Pour obtenir la lettre "г" utilisez 8x3 en ASCII"; si nous prenons l'encodage qui était utilisé en Allemagne à cette époque, alors il sera écrit: "Pour obtenir la lettre "β" utilisez 8x3".



Comme c'était terriblement gênant à cause de la localisation dans plusieurs langues, une nouvelle table de caractères, Unicode, a été inventée et standardisée. Unicode peut contenir plus de 1 000 000 de caractères. À l'heure actuelle, environ 100 000 caractères ont été ajoutés à Unicode – ainsi, 90% des cellules supplémentaires sont disponibles. Un encodage UTF universel a été inventé pour Unicode afin de faciliter le dessin des polices par les concepteurs (oui, pour chaque encodage séparé, les concepteurs doivent dessiner une police distincte).

C'est assez d'arrière-plan – il est maintenant temps de découvrir d'où vient le personnage invisible. Il s'agit des bogues d'Unicode: certains caractères spéciaux (contrôle et espaces) ne se comportent pas comme prévu. Le groupe de bugs le plus intéressant pour nous est le personnage invisible. Le fait est que le signe doit être spécial et doit être affiché sous la forme d'un très petit espace, mais le codage le perçoit comme un caractère à part entière (comme une lettre ou un chiffre) et l'affiche comme un grand espace. Vous avez peut–être déjà deviné comment la zone invisible en tant que signe à part entière peut être utilisée - pour insérer un espace là où elle n'est pas fournie.

Texte invisible-comment copier et coller?

Pour commencer, nous vous informerons de la triste nouvelle: même ces bugs d'encodage sont progressivement corrigés. Plus tôt (en 2012), une astuce était populaire dans “Vkontakte” – il était possible d'insérer un caractère de contrôle de nouvelle ligne dans le statut, et le statut était divisé en 2 lignes. Maintenant, vous ne pouvez plus le faire – le site traite correctement la sortie des données et une telle inscription ne casse plus la chaîne:

En plus de &nsbp, les réseaux sociaux et les messagers ont coupé tous les caractères de contrôle et spéciaux – vous ne pouvez pas retourner le texte ou l'afficher à l'envers s'il n'est pas initialement fourni par la langue. Il y a des services comme https://textinvert.ru/, qui vous permettent de changer le texte, mais ils ne le retournent pas, mais ramassent des lettres similaires dans d'autres langues. Cela nécessite un algorithme spécial. Il est extrêmement difficile de créer un grand texte vide maintenant (bien que cela soit toujours possible), mais les emojis invisibles et le signe d'ensemble vide qui cassaient de nombreuses polices sont également corrigés maintenant. Il ne reste plus qu'à envoyer des messages vides comme ceux-ci:

Unicode U+3164 pour insérer un caractère invisible

Donc, la chose la plus utile est un espace invisible, alias une "chaîne vide". En fait, il y a 3 de ces caractères, voici leurs codes:

Code du personnage

Caractère

U+115F

U+1160

U+3164

Pour voir le personnage, double-cliquez dessus dans le tableau. “Word", d'ailleurs, met légèrement en évidence le symbole en gris.

Comme pour le reste des caractères, il y a encore des caractères d'espace avec des adresses dans la zone de &#8192 – &#8202, mais nous les avons testés et avons découvert que les messagers les perçoivent comme des espaces ordinaires – par conséquent, ils ne sont pas d'intérêt. Si vous en avez besoin de toute façon ou si vous souhaitez les tester par vous-même dans différents services, voici quelques espaces et caractères de contrôle supplémentaires:

Code du personnage

Qu’est-ce que cela signifie?

Caractère

U+00A0

Espace sans espace

 

U+2003

Espace Em

U+2007

Espace bouclé (quoi que cela signifie)

U+2008

Espace de ponctuation

U+2009

Espace étroit

U+205F

Espace mathématique moyen

U+3000

Espace idéographique

 

Quant aux trois caractères ci-dessus, ils sont initialement des espaces réservés pour les caractères coréens qui se chevauchent. Ils sont considérés comme des personnages à part entière, bien qu'ils soient des charges. Ce comportement est peut-être dû au fait que lorsqu'un espace réservé est utilisé, le hiéroglyphe ne doit pas être transféré sur une nouvelle ligne. Si le caractère est considéré comme un espace, un transfert peut se produire (cela dépend des autres caractères de contrôle). Quoi qu'il en soit, vous pouvez copier un caractère vide du tableau et le coller où vous le souhaitez. Mais où il peut être inséré-voyons ci-dessous.

Texte invisible dans WhatsApp, VK, Instagram, Discord et jeux

Comme nous l'avons déjà dit, toutes les grandes plates-formes ont veillé à ce que les caractères de contrôle, spéciaux et autres caractères "non standard" soient découpés pendant le traitement. Par conséquent, le champ d'application de tels symboles est extrêmement limité, bien que dans certains endroits, ils puissent encore être utilisés.

WhatsApp, Viber, Télégramme:

Si vous insérez un espace blanc régulier, WhatsApp, comme les autres messagers, ne vous permet pas d'envoyer ce message – le bouton "Envoyer" n'apparaît pas. U+3164 peut être envoyé. Le résultat est un message vide.

VK, Facebook Messenger:

Il y a la même situation qu'avec les messagers – vous pouvez envoyer des messages vides à des messages privés. Soit dit en passant, vous pouvez également mettre U+3164 dans le statut VK – il sera affiché comme une ligne vide. Si vous mettez un espace régulier, le statut sera supprimé et l'inscription "Définir le statut" sera visible.

TikTok, Instagram: Il n'y a pas d'option pour utiliser l'espace caché. Les deux plates-formes considèrent le personnage de l'espace caché comme un espace régulier.

Discorde:

Discord vous permet d'envoyer des messages vides. En même temps, si vous essayez de créer une chaîne avec un nom vide, Discord ne vous permettra pas de le faire:

FAQ

Si je mets un caractère invisible dans Skype, le statut sera-t-il"hors ligne"?

Non, vous pouvez écrire n'importe quel texte dans la barre d'état du compte (y compris un espace caché), le statut “en ligne” ou “hors ligne” ne changera pas.

Quels sont les problèmes avec le caractère nul en programmation?

Vous ne devriez pas les utiliser dans votre code si vous ne voulez pas le ruiner. Si vous devez utiliser un caractère pour le stockage ou la sortie, écrivez-le dans une variable ou dans la sortie avec un code Unicode. Pourquoi est-il préférable de ne pas l'utiliser? Voici un exemple pour vous:

Comme vous pouvez le voir, nous avons déclaré une variable qui a des espaces dans le nom, ce que Python interdit. En même temps, PyCharm avertit que quelque chose ne va pas avec cette variable:

Non seulement vous enfreignez les règles de la langue, mais vous mettez également un rayon dans vos roues: pour accéder à une variable, vous devrez copier et coller manuellement son nom. Si vous faites un projet pour vous-même et que vous voulez vous compliquer la vie, vous pouvez utiliser de tels espaces, mais si vous travaillez sur un projet sérieux, n'essayez même pas de le faire, sinon vous allez avoir des ennuis.

Un caractère spécial peut-il casser la mise en page?

En théorie, cela est possible à condition que la mise en page soit faite de manière tordue ou hérite de mauvais motifs. Il est préférable de ne pas utiliser de tels caractères dans la mise en page, si vous ne le souhaitez pas si vous ne voulez pas que tout tombe en panne un jour.

Est-il possible d'utiliser ces symboles pour le piratage?

Techniquement, l'un des caractères de contrôle ‘ ' \0’ - peut être utilisé pour pirater le système via un programme écrit en C. Un terminateur nul indique au programme que la ligne est terminée et un code malveillant peut être écrit après le terminateur. Mais c'est très difficile, car tout d'abord, vous devez trouver un programme qui traite incorrectement les lignes entrantes, puis vous permet également d'exécuter du code malveillant à partir de la mémoire de quelqu'un d'autre. Il y a environ 15 ans, c'était un moyen populaire de piratage, maintenant c'est plus comme une exposition de musée de piratage.