Če ste kdaj poskusili poslati prazno sporočilo v telegramu, ste najverjetneje ugotovili, da se ne pošljeta niti presledek niti znak nove vrstice (Alt + Enter) - vnosno polje se preprosto Počisti. Hkrati ste lahko videli, da vam drugi ljudje dobesedno pošljejo prazen prostor in jim uspe. Kje je tukaj čarovnija? Če želite kratek odgovor-vstavijo "zlomljen" znak u+3164. Lahko ga kopirate iz oklepajev in uporabite: "Ethereum". Če želite podrobnejši odgovor, vam bomo spodaj povedali, od kod prihaja nevidno besedilo, kako ga dobiti in uporabiti, zakaj ga ne bi smeli uporabljati v kodi in kateri drugi znaki obstajajo.

Nevidni simbol-kako deluje?

Začnimo razlago s tabelami znakov in kodiranj. Vsak računalnik na ravni strojne opreme razume 2 znaka: 0 in 1. To ni primerno za ljudi, ker smo še vedno bolj navajeni na črke, ki so oblikovane v besede, stavke, odstavke itd. Za delo s temi črkami brez težav smo pripravili zelo preprosto shemo-črke vzamemo po vrstnem redu in jim damo edinstvene številke: A = 1, b = 2, c = 3 in tako naprej. Enolične številke dajemo tudi velikim črkam, znakom (pika, vejica, vprašaj in tako naprej), presledkom in številkam – seznam prikaže edinstven identifikator, ki je dodeljen vsakemu možnemu znaku. Ta seznam se imenuje tabela znakov kode, in prva koda tabela je priznana je ASCII:

Druga polovica je prazna. Namenjen je regionalnim znakom. Sama tabela je kot referenčna informacija. Obstaja tudi kodiranje – niz navodil za dešifriranje te tabele. Kodiranje se je pojavilo zaradi regionalnih standardov. Potrebni so za branje znakov "pravilno". Če vzamemo kodiranje, ki je bilo v tistem času običajno v CIS, potem bo v njem navodilo: "če želite dobiti črko "Ethereum", uporabite 8H3 v ASCII"; če vzamemo kodiranje, ki je bilo takrat uporabljeno v Nemčiji, potem bo napisano: "če želite dobiti črko "Ethereum", uporabite 8h3".



Ker je bilo zaradi lokalizacije v več jezikov strašno neprijetno, je bila izumljena in standardizirana nova tabela znakov Unicode. Unicode lahko vsebuje več kot 1.000.000 znakov. Trenutno je v Unicode dodanih približno 100.000 znakov – tako je na voljo še 90% celic. Za Unicode je bilo izumljeno univerzalno kodiranje UTF, da bi oblikovalcem olajšali risanje pisav (da, za vsako ločeno kodiranje morajo oblikovalci narisati ločeno pisavo).

To je dovolj ozadja – zdaj je čas, da ugotovimo, od kod prihaja nevidni lik. Vse je v hroščih Unicode: nekateri posebni znaki (nadzorni in presledki) se ne obnašajo, kot je bilo predvideno. Najbolj zanimiva skupina hroščev za nas je nevidni lik. Bistvo je, da mora biti znak poseben in mora biti prikazan kot zelo majhen presledek, vendar ga kodiranje dojema kot polnopravni znak (kot črka ali številka) in ga prikaže kot velik presledek. Morda ste že uganili, kako je mogoče uporabiti nevidno območje kot polnopravni znak–vstaviti prostor, kjer ni na voljo.

Nevidno besedilo-kako kopirati in prilepiti?

Za začetek vas bomo obvestili o žalostni novici: tudi te napake pri kodiranju se postopoma odpravljajo. Prej (leta 2012) je bil v "Vkontakte" priljubljen trik – v status je bilo mogoče vstaviti kontrolni znak nove vrstice, status pa je bil razdeljen na 2 vrstici. Zdaj tega ne morete storiti – spletno mesto pravilno obdela izpis podatkov in tak napis ne prekine več niza:

Poleg &nsbp so družbena omrežja in glasniki zmanjšali vse nadzorne in posebne znake – besedila ne morete obrniti na glavo ali ga prikazati nazaj, če ga jezik sprva ne zagotavlja. Obstajajo storitve, kot so https://textinvert.ru/, ki vam omogočajo, da spremenite besedilo, vendar ga ne obrnejo na glavo, ampak poberejo podobne črke v drugih jezikih. Zahteva poseben algoritem. Zdaj je izjemno težko ustvariti veliko prazno besedilo (čeprav je to še vedno mogoče), vendar so zdaj popravljeni tudi nevidni emojiji in prazen znak, ki je zlomil številne pisave. Vse, kar ostane, je pošiljanje praznih sporočil, kot so ta:

Unicode U + 3164 za vstavljanje nevidnega znaka

Torej, najbolj uporabna stvar je neviden prostor, imenovan tudi "prazen niz". Pravzaprav obstajajo 3 od teh znakov, tukaj so njihove kode:

Koda znaka

Znak

U+115F

U+1160

U+3164

Če si želite ogledati znak, ga dvokliknite v tabeli. "Beseda", mimogrede, rahlo poudarja simbol v sivi barvi.

Kar zadeva ostale znake, še vedno obstajajo presledki z naslovi na območju &#8192 – &#8202, vendar smo jih preizkusili in ugotovili, da jih glasniki dojemajo kot običajne prostore – zato jih ne zanimajo. Če jih vseeno potrebujete ali jih želite preizkusiti sami v različnih storitvah – tukaj je še nekaj presledkov in kontrolnih znakov:

Koda znaka

Kaj to pomeni?

Znak

U+00A0

Prostor brez vrzeli

 

U+2003

Em vesolje

U+2007

Kodrasti prostor (karkoli že to pomeni)

U+2008

Ločilni prostor

U+2009

Ozek prostor

U+205F

Povprečni matematični prostor

U+3000

Ideografski prostor

 

Kar zadeva tri zgornje znake, so sprva ograde za prekrivanje korejskih znakov. Štejejo se za polnopravne znake, čeprav so polnila. Morda je to vedenje posledica dejstva, da se pri uporabi nadomestnega znaka hieroglif ne sme prenesti v novo vrstico. Če se znak šteje za presledek, lahko pride do prenosa (odvisno od drugih kontrolnih znakov). Kakor koli že, lahko iz tabele kopirate prazen znak in ga prilepite kamor koli potrebujete. Toda kam ga je mogoče vstaviti – poglejmo spodaj.

Nevidno besedilo v Kajapp, VK, Instagram, Discord in igre

Kot smo že povedali, so vse večje platforme poskrbele, da so med obdelavo izrezani nadzorni, posebni in drugi "nestandardni" znaki. Zato je področje uporabe takšnih simbolov izjemno omejeno, čeprav jih je ponekod še vedno mogoče uporabiti.

Kajpak, Viber, Telegram:

Če vstavite navaden presledek, vam tako kot drugi kurirji ne omogoča pošiljanja tega sporočila – gumb "Pošlji" se ne prikaže. U + 3164 lahko pošljete. Rezultat je prazno sporočilo.

VK, Facebook Messenger:

Obstaja enaka situacija kot pri sporočilih – prazna sporočila lahko pošiljate zasebnim sporočilom. Mimogrede, v stanje Vk lahko postavite tudi U+3164 – prikazan bo kot prazna vrstica. Če postavite navaden presledek, bo stanje izbrisano in viden bo napis "nastavi stanje".

TikTok, Instagram: Ni možnosti za uporabo skritega prostora. Obe platformi obravnavata znak skritega prostora kot reden prostor.

Neskladje:

Discord vam omogoča pošiljanje praznih sporočil. Če hkrati poskusite ustvariti kanal s praznim imenom, vam Discord tega ne bo dovolil:

Pogosta vprašanja

Če sem dal neviden znak v Skip, Bo stanje "offline"?

Ne, v vrstico stanja računa lahko napišete poljubno besedilo (vključno s skritim presledkom), stanje "na spletu" ali "brez povezave" se ne bo spremenilo.

Kakšne so težave z ničelnim znakom pri programiranju?

Ne smete jih uporabljati v kodi, če je ne želite uničiti. Če morate uporabiti znak za shranjevanje ali izhod, ga zapišite v spremenljivko ali na izhod s kodo Unicode. Zakaj je bolje, da ga ne uporabljate? Tukaj je primer za vas:

Kot lahko vidite, smo razglasili spremenljivko, ki ima v imenu presledke, kar Piton prepoveduje. Hkrati Piharm opozarja, da s to spremenljivko nekaj ni v redu:

Ne samo, da kršite pravila jezika, v kolesa postavljate tudi krako: za dostop do spremenljivke boste morali ročno kopirati in prilepiti njeno ime. Če delate nekaj projekta zase in želite zapletati svoje življenje, lahko uporabite takšne prostore, če pa delate na kakšnem resnem projektu, tega niti ne poskušajte storiti, sicer boste v težavah.

Ali lahko poseben znak zlomi postavitev?

Teoretično je to mogoče pod pogojem, da je postavitev narejena krivo ali podeduje slabe vzorce. Bolje je, da takšnih znakov ne uporabljate v postavitvi, če tega ne želite, če ne želite, da se nekega dne vse pokvari.

Ali je mogoče te simbole uporabiti za hekanje?

Tehnično lahko enega od kontrolnih znakov – '\0' – uporabimo za vdor v sistem prek programa, napisanega v C. ničelni terminator programu nakaže, da se je vrstica končala, zlonamerno kodo pa lahko zapišemo po Terminatorju. Toda to je zelo težko, saj morate najprej najti program, ki nepravilno obdeluje dohodne vrstice, nato pa vam omogoča tudi zagon zlonamerne kode iz pomnilnika nekoga drugega. Pred približno 15 leti je bil priljubljen način vdora, zdaj je bolj podoben muzejski razstavi vdora.

Pogosta vprašanja

Če sem dal neviden znak v Skip, Bo stanje "offline"?

Ne, v vrstico stanja računa lahko napišete poljubno besedilo (vključno s skritim presledkom), stanje "na spletu" ali "brez povezave" se ne bo spremenilo.

Kakšne so težave z ničelnim znakom pri programiranju?

Ne smete jih uporabljati v kodi, če je ne želite uničiti. Če morate uporabiti znak za shranjevanje ali izhod, ga zapišite v spremenljivko ali na izhod s kodo Unicode. Zakaj je bolje, da ga ne uporabljate? Tukaj je primer za vas:

Kot lahko vidite, smo razglasili spremenljivko, ki ima v imenu presledke, kar Piton prepoveduje. Hkrati Piharm opozarja, da s to spremenljivko nekaj ni v redu:

Ne samo, da kršite pravila jezika, v kolesa postavljate tudi krako: za dostop do spremenljivke boste morali ročno kopirati in prilepiti njeno ime. Če delate nekaj projekta zase in želite zapletati svoje življenje, lahko uporabite takšne prostore, če pa delate na kakšnem resnem projektu, tega niti ne poskušajte storiti, sicer boste v težavah.

Ali lahko poseben znak zlomi postavitev?

Teoretično je to mogoče pod pogojem, da je postavitev narejena krivo ali podeduje slabe vzorce. Bolje je, da takšnih znakov ne uporabljate v postavitvi, če tega ne želite, če ne želite, da se nekega dne vse pokvari.

Ali je mogoče te simbole uporabiti za hekanje?

Tehnično lahko enega od kontrolnih znakov – '\0' – uporabimo za vdor v sistem prek programa, napisanega v C. ničelni terminator programu nakaže, da se je vrstica končala, zlonamerno kodo pa lahko zapišemo po Terminatorju. Toda to je zelo težko, saj morate najprej najti program, ki nepravilno obdeluje dohodne vrstice, nato pa vam omogoča tudi zagon zlonamerne kode iz pomnilnika nekoga drugega. Pred približno 15 leti je bil priljubljen način vdora, zdaj je bolj podoben muzejski razstavi vdora.