Si alguna vegada heu intentat enviar un missatge buit A Telegram, el més probable és que descobriu que no s'envien ni El signe d'espai ni el signe de línia nova (Alt + Intro) - el camp d'entrada simplement es neteja. Al mateix temps, es podia veure que altres persones literalment t'envien un espai buit, i tenen èxit. On és la màgia aquí? Si voleu una resposta curta, inseriu el caràcter" trencat " u+3164. Podeu copiar-lo des dels claudàtors i utilitzar: "ㅤㅤㅤ". Si vols una resposta més detallada, a continuació t'expliquem d'on ve el text invisible, com aconseguir-lo i utilitzar-lo, per què no has d'utilitzar-lo en el codi i quins altres caràcters hi ha.

Símbol Invisible – com funciona?

Comencem l'explicació amb taules de caràcters i codificacions. Qualsevol ordinador a nivell de maquinari entén 2 caràcters: 0 i 1. Això no és convenient per a la gent, perquè encara estem més acostumats a les lletres que es formen en paraules, oracions, paràgrafs, etc. Per treballar amb aquestes lletres sense cap problema, hem creat un esquema molt simple: agafem les lletres en ordre i les donem nombres únics: a = 1, b = 2, c = 3, etc. També donem números únics a les lletres majúscules, signes (punt, coma, signe d'interrogació, etc.), espais en blanc i números – una llista té un identificador únic que s'assigna a cada caràcter possible. Aquesta llista s'anomena taula de codi de caràcters, i la primera taula de codi reconeguda va ser ASCII.:

La segona meitat està buida. Es tracta de personatges regionals. La taula és com una informació de referència. També hi ha una codificació – un conjunt d'instruccions per desxifrar aquesta taula. Les codificacions van aparèixer a causa de les normes regionals. Es necessiten per llegir els caràcters "correctament". Si prenem la codificació que era comuna en EL CIS en aquell MOMENT, llavors hi haurà una instrucció en ell: "per obtenir la lletra" г "utilitzeu 8x3 EN ASCII"; si prenem la codificació que s'utilitzava A Alemanya en aquell moment, llavors s'escriurà: "per obtenir la lletra "β" utilitzeu 8x3".



Com que era terriblement incòmode a causa de la localització en diversos idiomes, Es va inventar I estandarditzar Una nova taula de caràcters, Unicode. Unicode pot contenir més de 1.000.000 caràcters. Actualment S'han afegit uns 100.000 caràcters A Unicode, de manera que un altre 90% de les cèl lules estan disponibles. Es va inventar una codificació UTF universal Per Unicode per facilitar als dissenyadors el dibuix de tipus de lletra (sí, per a cada codificació separada, els dissenyadors necessiten dibuixar un tipus de lletra separat).

Això és suficient fons-ara és el moment de descobrir d'on ve el personatge invisible. Es tracta dels errors D'Unicode: alguns caràcters especials (control i espai en blanc) no es comporten com es pretenia. El grup de bestioles més interessant per a nosaltres és el personatge invisible. El punt és que el signe ha de ser especial i s'ha de mostrar com un espai en blanc molt petit, però la codificació el percep com un caràcter de ple dret (com una lletra o un nombre) i el mostra com un espai gran. Potser ja heu endevinat com es pot utilitzar l'àrea invisible com a signe de ple dret-per inserir un espai on no es proporciona.

Text Invisible: com copiar i enganxar?

Per començar, us informarem de la trista notícia: fins i tot aquests errors de codificació s'estan arreglant gradualment. Abans (el 2012), un truc va ser popular en "Joc De Línia" – era possible inserir un caràcter de control de línia nova en l'estat, i l'estat es va dividir en 2 línies. Ara no podeu fer-ho: el lloc processa la sortida de dades correctament, i aquesta inscripció ja no trenca la cadena:

A més de &nsbp, les xarxes socials i els missatgers han tallat tots els caràcters de control i especials-no es pot girar el text cap per avall o mostrar-lo cap enrere si no és proporcionat inicialment per l'idioma. Hi ha serveis com https://textinvert.ru/, que permeten canviar el text, però no el posen cap per avall, sinó que recullen lletres similars en altres idiomes. Requereix un algoritme especial. És extremadament difícil crear un gran text buit ara (tot i que encara és possible), però els emojis invisibles i el signe de conjunt buit que va trencar moltes fonts també es corregeixen ara. L'únic que queda és enviar missatges buits com aquests.:

Unicode U+3164 per inserir un caràcter invisible

Per tant, el més útil és un espai invisible, conegut com una "cadena buida". De fet, hi ha 3 d'aquests personatges, aquí estan els seus codis:

Codi del caràcter

Caràcter

U+115F

U+1160

U+3164

Per veure el personatge, feu doble clic sobre ell a la taula. "Paraula", per cert, ressalta lleugerament el símbol en gris.

Pel que fa a la resta de caràcters, encara hi ha caràcters d'espais en blanc amb adreces a l'àrea de &#8192 – &#8202, però els vam provar i vam descobrir que els missatgers els perceben com a espais ordinaris – per tant, no són d'interès. Si els necessiteu de totes maneres o voleu provar-los per vosaltres mateixos en diferents serveis - aquí hi ha alguns espais més i caràcters de control:

Codi del caràcter

Què vol dir?

Caràcter

U + 00A0

Espai sense espai

 

U+2003

Em space

U+2007

Espai curt (el que això significa)

U+2008

Espai de puntuació

U+2009

Espai estret

U+205F

Espai matemàtic mitjà

U+3000

Espai ideogràfic

 

Pel que fa als tres caràcters anteriors, inicialment són marcadors de posició per a caràcters coreans superposats. Se'ls considera personatges de ple dret, tot i que són farcits. Potser aquest comportament es deu al fet que quan s'utilitza un marcador de posició, el jeroglífic no s'ha de transferir a una nova línia. Si el caràcter es considera un espai en blanc, es pot produir una transferència (depèn d'altres caràcters de control). De totes maneres, podeu copiar un caràcter buit de la taula i enganxar-lo allà on vulgueu. Però on es pot inserir-anem a veure més avall.

Text Invisible A <url>, Instagram, Discord i jocs

Com ja hem dit, totes les principals plataformes s'han assegurat que els caràcters de control, especials i altres caràcters "no estàndard" es tallen durant el processament. Per tant, l'abast d'aplicació d'aquests símbols és extremadament limitat, encara que en alguns llocs encara es poden utilitzar.

Correu Electrònic: <url>:

Si inseriu un espai en blanc normal, Tal Qual, igual que altres missatgers, no us permet enviar aquest missatge – el botó "Enviar" no apareix. Es pot enviar U+3164. El resultat és un missatge buit.

VK, Facebook Messenger:

Hi ha la mateixa situació que amb els missatgers: podeu enviar missatges buits a missatges privats. Per cert, També Podeu posar U+3164 a l'estat DE VC-es mostrarà com una línia buida. Si es posa un espai regular, l'estat s'esborrarà i la inscripció "Estat Establert" serà visible.

Instagram, Notícies: No hi ha opció d'utilitzar l'espai ocult. Ambdues plataformes consideren l'espai ocult com un espai regular.

Discord:

El Discord permet enviar missatges buits. Al mateix temps, si intenteu crear un canal amb un nom buit, Discord no us permetrà fer-ho:

PREGUNTES FREQÜENTS

Si li poso un personatge invisible, l'estat serà"fora de línia"?

No, podeu escriure qualsevol text a la barra d'estat del compte (incloent un espai ocult), l'estat "en línia" o "fora de línia" no canviarà.

Quins són els problemes amb el caràcter nul en la programació?

No l'has d'utilitzar en el teu codi si no vols arruïnar-lo. Si necessiteu utilitzar un caràcter per a l'emmagatzematge o la sortida, escriviu-lo a una variable o a la sortida Amb Un Unicode-codi. Per què és millor no utilitzar-lo? Aquí tens un exemple per a tu:

Com podeu veure, hem declarat una variable que té espais en el nom, que Python prohibeix. Al mateix Temps, PyCharm adverteix que alguna cosa està malament amb aquesta variable:

No només estàs violant les regles de l'idioma, també estàs posant una parla a les rodes: per accedir a una variable, hauràs de copiar i enganxar manualment el seu nom. Si estàs fent algun projecte per tu mateix i vols complicar-te la vida, pots utilitzar aquests espais, però si estàs treballant en algun projecte seriós, ni tan sols intentis fer-ho, en cas contrari tindràs problemes.

Un personatge especial pot trencar la disposició?

En teoria, això és possible sempre que la disposició es faci de manera fraudulenta o hereta patrons dolents. És millor no utilitzar aquests caràcters en el disseny, si no vols si no vols que tot es trenqui un dia.

És possible utilitzar aquests símbols per a la pirateria?

Tècnicament, un dels caràcters de control- '\ 0' - es pot utilitzar per piratejar El sistema a través D'Un programa escrit En C. un terminador nul indica al programa que la línia ha acabat, i codi maliciós pot ser escrit després del terminador. Però això és molt difícil, perquè en primer lloc, cal trobar un programa que processi incorrectament les línies entrants, i després també li permet executar codi maliciós des de la memòria d'una altra persona. Fa uns 15 anys era una forma popular de pirateria, ara és més com una exhibició de museu de pirateria.