Dacă ați încercat vreodată să trimiteți un mesaj gol în Telegram, atunci cel mai probabil ați aflat că nici semnul spațial, nici semnul newline (Alt + Enter) nu sunt trimise - câmpul de introducere este pur și simplu șters. În același timp, ați putea vedea că alți oameni vă trimit literalmente un spațiu gol și reușesc. Unde este magia aici? Dacă doriți un răspuns scurt-introduc caracterul" rupt " u + 3164. Puteți să-l copiați din paranteze și să utilizați: "XV". Dacă doriți un răspuns mai detaliat, mai jos vă vom spune de unde provine textul invizibil, cum să îl obțineți și să îl utilizați, de ce nu ar trebui să îl utilizați în cod și ce alte caractere există.

Simbol invizibil-cum funcționează?

Să începem explicația cu tabele de caractere și codificări. Orice computer la nivel hardware înțelege 2 caractere: 0 și 1. Acest lucru nu este convenabil pentru oameni, deoarece suntem încă mai obișnuiți cu literele care sunt formate în cuvinte, propoziții, paragrafe și așa mai departe. Pentru a lucra cu aceste litere fără probleme, am venit cu o schemă foarte simplă – luăm literele în ordine și le dăm numere unice: a = 1, b = 2, C = 3 și așa mai departe. De asemenea, oferim numere unice literelor majuscule, semnelor (punct, virgulă, semn de întrebare și așa mai departe), spațiului alb și numerelor – o listă prezintă un identificator unic care este atribuit fiecărui caracter posibil. Această listă se numește tabelul de cod de caractere, iar primul tabel de cod este recunoscut a fost ASCII:

A doua jumătate este goală. Este destinat caracterelor regionale. Tabelul în sine este ca o informație de referință. Există, de asemenea, o codificare – un set de instrucțiuni pentru decriptarea acestui tabel. Codificările au apărut din cauza standardelor regionale. Ele sunt necesare pentru a citi caracterele "corect". Dacă luăm codificarea care era obișnuită în CSI la acel moment, atunci va exista o instrucțiune în ea: "pentru a obține litera "hectolixt" utilizați 8X3 în ASCII"; dacă luăm codificarea care a fost folosită în Germania la acel moment, atunci va fi scris: "pentru a obține litera "octoxt" utilizați 8x3".



Deoarece a fost teribil de incomod din cauza localizării în mai multe limbi, a fost inventat și standardizat un nou tabel de caractere, Unicode. Unicode poate conține mai mult de 1.000.000 de caractere. În prezent, aproximativ 100.000 de caractere au fost adăugate la Unicode – deci, alte 90% din celule sunt disponibile. O codificare UTF universală a fost inventată pentru Unicode pentru a facilita proiectanților să deseneze fonturi (da, pentru fiecare codificare separată, designerii trebuie să deseneze un font separat).

Este suficient fundal-acum este timpul să aflăm de unde provine personajul invizibil. Este vorba despre bug-urile Unicode: unele caractere speciale (control și spațiu alb) nu se comportă așa cum se intenționează. Cel mai interesant grup de bug-uri pentru noi este caracterul invizibil. Ideea este că semnul ar trebui să fie special și ar trebui să fie afișat ca un spațiu alb foarte mic, dar codificarea îl percepe ca un caracter cu drepturi depline (cum ar fi o literă sau un număr) și îl afișează ca un spațiu mare. Este posibil să fi ghicit deja cum poate fi utilizată zona invizibilă ca semn cu drepturi depline–pentru a insera un spațiu în care nu este furnizat.

Text invizibil-cum să copiați și să lipiți?

Pentru început, vă vom informa despre veștile triste: chiar și aceste bug-uri de codificare sunt remediate treptat. Anterior (în 2012), un truc a fost popular în "Vkontakte" – a fost posibil să se introducă un caracter de control newline în stare, iar statutul a fost împărțit în 2 Linii. Acum nu puteți face acest lucru – site-ul procesează corect ieșirea de date și o astfel de inscripție nu mai rupe șirul:

În plus față de &nsbp, rețelele sociale și mesagerii au tăiat tot controlul și caracterele speciale – nu puteți întoarce textul cu susul în jos sau îl puteți afișa înapoi dacă nu este furnizat inițial de limbă. Există servicii precum https://textinvert.ru/, care vă permit să schimbați textul, dar nu îl întoarceți cu susul în jos, ci ridicați litere similare în alte limbi. Este nevoie de un algoritm special. Este extrem de dificil să creați acum un text gol mare (deși este încă posibil), dar emoji-urile invizibile și semnul set gol care a rupt multe fonturi sunt, de asemenea, fixate acum. Tot ce rămâne este să trimiteți mesaje goale ca acestea:

Unicode U + 3164 pentru inserarea unui caracter invizibil

Deci, cel mai util lucru este un spațiu invizibil, Alias Un "șir gol". De fapt, există 3 dintre aceste caractere, aici sunt codurile lor:

Codul personajului

Caracter

U+115F

U+1160

U + 3164

Pentru a vedea caracterul, faceți dublu clic pe el în tabel. "Cuvântul", apropo, evidențiază ușor simbolul în gri.

În ceea ce privește restul personajelor, există încă caractere spațiu alb cu adrese în zona &#8192 – &#8202, dar le – am testat și a aflat că mesagerii le percep ca spații obișnuite-prin urmare, ele nu sunt de interes. Dacă oricum aveți nevoie de ele sau doriți să le testați singuri în diferite servicii – iată câteva spații și personaje de control:

Codul personajului

Ce înseamnă?

Caracter

U + 00A0

Spațiu fără decalaj

 

U+2003

Em space

U+2007

Spațiu cret (orice ar însemna asta)

U+2008

Spațiu de punctuație

U+2009

Spațiu îngust

U + 205F

Spațiu mediu de matematică

U + 3000

Spațiul ideografic

 

În ceea ce privește cele trei caractere de mai sus, inițial sunt substituenți pentru suprapunerea caracterelor coreene. Ele sunt considerate personaje cu drepturi depline, deși sunt umpluturi. Poate că acest comportament se datorează faptului că atunci când se utilizează un substituent, hierogliful nu ar trebui transferat pe o nouă linie. Dacă caracterul este considerat un spațiu alb, poate apărea un transfer (depinde de alte caractere de control). Oricum, puteți copia un caracter gol din tabel și îl puteți lipi oriunde aveți nevoie. Dar unde poate fi inserat – să vedem mai jos.

Text invizibil în WhatsApp, VK, Instagram, discordie și jocuri

Așa cum am spus deja, toate platformele majore s-au asigurat că caracterele de control, speciale și alte caractere "non-standard" sunt tăiate în timpul procesării. Prin urmare, domeniul de aplicare al acestor simboluri este extrem de limitat, deși în unele locuri pot fi utilizate în continuare.

WhatsApp, Viber, Telegramă:

Dacă introduceți un spațiu alb obișnuit, atunci WhatsApp, ca și alți mesageri, nu vă permite să trimiteți acest mesaj – butonul "Trimitere" nu apare. U + 3164 pot fi trimise. Rezultatul este un mesaj gol.

VK, Facebook Messenger:

Există aceeași situație ca și în cazul mesagerilor – puteți trimite mesaje goale către mesaje private. Apropo, puteți pune și U+3164 în starea VK – va fi afișat ca o linie goală. Dacă puneți un spațiu obișnuit, starea va fi ștearsă și inscripția "Setare stare" va fi vizibilă.

TikTok, Instagram: Nu există nicio opțiune de a utiliza spațiul ascuns. Ambele platforme consideră caracterul spațiului ascuns ca un spațiu obișnuit.

Discordie:

Discord vă permite să trimiteți mesaje goale. În același timp, dacă încercați să creați un canal cu un nume gol, Discord nu vă va permite să faceți acest lucru:

FAQ

Dacă pun un caracter invizibil în Skype, starea va fi "offline"?

Nu, puteți scrie orice text în bara de stare a contului (inclusiv un spațiu ascuns), starea "online" sau "offline" nu se va schimba.

Care sunt problemele cu caracterul nul în programare?

Nu ar trebui să le folosiți în codul dvs. dacă nu doriți să le stricați. Dacă trebuie să utilizați un caracter pentru stocare sau ieșire, scrieți-l la o variabilă sau la ieșire cu un cod Unicode. De ce este mai bine să nu o folosiți? Iată un exemplu pentru tine:

După cum puteți vedea, am declarat o variabilă care are spații în nume, pe care Python le interzice. În același timp, PyCharm avertizează că ceva nu este în regulă cu această variabilă:

Nu numai că încălcați regulile limbii, ci puneți și o spiță în roți: pentru a accesa o variabilă, va trebui să copiați și să lipiți manual numele acesteia. Dacă faceți un proiect pentru dvs. și doriți să vă complicați viața, puteți folosi astfel de spații, dar dacă lucrați la un proiect serios, nici măcar nu încercați să faceți acest lucru, altfel veți avea probleme.

Poate un personaj special să rupă aspectul?

În teorie, acest lucru este posibil cu condiția ca aspectul să fie făcut strâmb sau să moștenească modele proaste. Este mai bine să nu folosiți astfel de caractere în aspect, dacă nu doriți dacă nu doriți ca totul să se descompună într-o zi.

Este posibil să folosiți aceste simboluri pentru hacking?

Din punct de vedere tehnic, unul dintre caracterele de control – '\0' – poate fi folosit pentru a hack sistemul printr-un program scris în C. un terminator nul indică programului că linia s-a încheiat, iar codul rău intenționat poate fi scris după terminator. Dar acest lucru este foarte dificil, deoarece în primul rând, trebuie să găsiți un program care procesează incorect liniile primite și apoi vă permite să rulați cod rău intenționat din memoria altcuiva. Acum 15 ani a fost un mod popular de hacking, acum este mai mult ca o expoziție muzeală de hacking.

FAQ

Dacă pun un caracter invizibil în Skype, starea va fi "offline"?

Nu, puteți scrie orice text în bara de stare a contului (inclusiv un spațiu ascuns), starea "online" sau "offline" nu se va schimba.

Care sunt problemele cu caracterul nul în programare?

Nu ar trebui să le folosiți în codul dvs. dacă nu doriți să le stricați. Dacă trebuie să utilizați un caracter pentru stocare sau ieșire, scrieți-l la o variabilă sau la ieșire cu un cod Unicode. De ce este mai bine să nu o folosiți? Iată un exemplu pentru tine:

După cum puteți vedea, am declarat o variabilă care are spații în nume, pe care Python le interzice. În același timp, PyCharm avertizează că ceva nu este în regulă cu această variabilă:

Nu numai că încălcați regulile limbii, ci puneți și o spiță în roți: pentru a accesa o variabilă, va trebui să copiați și să lipiți manual numele acesteia. Dacă faceți un proiect pentru dvs. și doriți să vă complicați viața, puteți folosi astfel de spații, dar dacă lucrați la un proiect serios, nici măcar nu încercați să faceți acest lucru, altfel veți avea probleme.

Poate un personaj special să rupă aspectul?

În teorie, acest lucru este posibil cu condiția ca aspectul să fie făcut strâmb sau să moștenească modele proaste. Este mai bine să nu folosiți astfel de caractere în aspect, dacă nu doriți dacă nu doriți ca totul să se descompună într-o zi.

Este posibil să folosiți aceste simboluri pentru hacking?

Din punct de vedere tehnic, unul dintre caracterele de control – '\0' – poate fi folosit pentru a hack sistemul printr-un program scris în C. un terminator nul indică programului că linia s-a încheiat, iar codul rău intenționat poate fi scris după terminator. Dar acest lucru este foarte dificil, deoarece în primul rând, trebuie să găsiți un program care procesează incorect liniile primite și apoi vă permite să rulați cod rău intenționat din memoria altcuiva. Acum 15 ani a fost un mod popular de hacking, acum este mai mult ca o expoziție muzeală de hacking.