Ak ste sa niekedy pokúsili poslať prázdnu správu v telegrame, pravdepodobne ste zistili, že sa neodošle ani znak medzery, ani znak nového riadku (Alt + Enter) - vstupné pole sa jednoducho vymaže. Zároveň ste mohli vidieť, že ostatní ľudia vám doslova posielajú prázdne miesto a uspejú. Kde je tu kúzlo? Ak chcete krátku odpoveď-vložia" zlomený " znak u+3164. Môžete ho skopírovať z zátvoriek a použiť: "ㅤㅤㅤ". Ak chcete podrobnejšiu odpoveď, nižšie vám povieme, odkiaľ pochádza neviditeľný text, ako ho získať a používať, prečo by ste ho nemali používať v kóde a aké ďalšie znaky existujú.

Neviditeľný Symbol – ako to funguje?

Začnime vysvetlenie tabuľkami znakov a kódovaní. Každý počítač na hardvérovej úrovni chápe 2 znaky: 0 a 1. To nie je vhodné pre ľudí, pretože sme stále viac zvyknutí na písmená, ktoré sa formujú do slov, viet, odsekov atď. Aby sme s týmito písmenami bez problémov pracovali, prišli sme s veľmi jednoduchou schémou – berieme písmená v poriadku a dávame im jedinečné čísla: a = 1, b = 2, c = 3 atď. Jedinečné čísla dávame aj veľkým písmenám, znakom (bodka, čiarka, otáznik atď.), medzerám a číslam – v zozname sa nachádza jedinečný identifikátor, ktorý je priradený každému možnému znaku. Tento zoznam sa nazýva tabuľka kódov znakov a prvá tabuľka kódov je rozpoznaná ako ASCII:

Druhá polovica je prázdna. Je určený pre regionálne znaky. Samotná tabuľka je ako referenčná informácia. K dispozícii je tiež kódovanie – súbor pokynov na dešifrovanie tejto tabuľky. Kódovanie sa objavilo kvôli regionálnym normám. Sú potrebné na čítanie znakov "správne". Ak vezmeme kódovanie, ktoré bolo v tom čase bežné v CIS, potom v ňom bude inštrukcia: "ak chcete získať písmeno "β", použite 8x3 v ASCII"; ak vezmeme kódovanie, ktoré sa v tom čase používalo v Nemecku, potom bude napísané: "ak chcete získať písmeno "β", použite 8x3".



Pretože to bolo strašne nepohodlné z dôvodu lokalizácie do niekoľkých jazykov, bola vynájdená a štandardizovaná nová tabuľka znakov Unicode. Unicode môže obsahovať viac ako 1 000 000 znakov. V súčasnosti bolo do Unicode pridaných asi 100 000 znakov – takže je k dispozícii ďalších 90% buniek. Pre Unicode bolo vyvinuté univerzálne kódovanie UTF, aby sa návrhárom uľahčilo kreslenie písiem (Áno, pre každé samostatné kódovanie musia dizajnéri nakresliť samostatné písmo).

To je dosť pozadia-teraz je čas zistiť, odkiaľ pochádza neviditeľná postava. Je to všetko o chybách Unicode: niektoré špeciálne (kontrolné a medzery) znaky sa nesprávajú podľa plánu. Najzaujímavejšou skupinou chýb pre nás je neviditeľná postava. Ide o to, že označenie by malo byť špeciálne a malo by sa zobrazovať ako veľmi malé medzery, ale kódovanie ho vníma ako plnohodnotný znak (ako písmeno alebo číslo) a zobrazuje ho ako veľký priestor. Možno ste už uhádli, ako je možné použiť neviditeľnú oblasť ako plnohodnotný znak–vložiť priestor tam, kde nie je k dispozícii.

Neviditeľný text - ako kopírovať a vkladať?

Najprv Vás budeme informovať o smutnej správe: aj tieto chyby kódovania sa postupne opravujú. Skôr (v roku 2012) bol trik populárny v "Vkontakte" – bolo možné vložiť nový riadiaci znak do stavu a stav bol rozdelený na 2 riadky. Teraz to nemôžete urobiť – stránka spracováva výstup údajov správne a takýto nápis už reťazec neporušuje:

Okrem & nsbp, sociálne siete a poslovia znížili všetky kontrolné a špeciálne znaky – nemôžete otočiť text hore nohami alebo ho zobraziť dozadu, ak to pôvodne jazyk neposkytuje. Existujú služby ako https://textinvert.ru/, ktoré vám umožňujú zmeniť text, ale neotáčajú ho hore nohami, ale vyzdvihujú podobné písmená v iných jazykoch. Vyžaduje špeciálny algoritmus. Teraz je mimoriadne ťažké vytvoriť veľký prázdny text (aj keď je to stále možné), ale teraz sú opravené aj neviditeľné emodži a znak prázdnej sady, ktorý zlomil veľa písiem. Zostáva už len posielať prázdne správy, ako sú tieto:

Unicode U + 3164 pre vloženie neviditeľného znaku

Najužitočnejšou vecou je teda neviditeľný priestor, známy ako "prázdny reťazec". V skutočnosti existujú 3 z týchto znakov, tu sú ich kódy:

Kód znaku

Znak

U+115F

U + 1160

U + 3164

Ak chcete zobraziť znak, dvakrát naň kliknite v tabuľke. "Slovo", mimochodom, mierne zvýrazňuje symbol v šedej farbe.

Pokiaľ ide o ostatné znaky, v oblasti &#8192 – &#8202 stále existujú medzery s adresami, ale testovali sme ich a zistili sme, že poslovia ich vnímajú ako obyčajné priestory – preto ich nezaujímajú. Ak ich aj tak potrebujete alebo si ich chcete vyskúšať sami v rôznych službách – tu je niekoľko ďalších medzier a ovládacích znakov:

Kód znaku

Čo to znamená?

Znak

U + 00A0

Priestor bez medzery

 

U + 2003

Em space

U + 2007

Curly space (čokoľvek to znamená)

U + 2008

Interpunkčný priestor

U + 2009

Úzky priestor

U+205F

Priemerný matematický priestor

U + 3000

Ideografický priestor

 

Pokiaľ ide o tri vyššie uvedené znaky, spočiatku ide o zástupné symboly pre prekrývajúce sa kórejské znaky. Sú považované za plnohodnotné postavy, aj keď sú výplňami. Možno je toto správanie spôsobené skutočnosťou, že keď sa použije zástupný symbol, hieroglyf by sa nemal prenášať na nový riadok. Ak sa znak považuje za medzeru, môže dôjsť k prenosu (závisí to od iných kontrolných znakov). V každom prípade môžete skopírovať prázdny znak z tabuľky a vložiť ho kamkoľvek potrebujete. Ale kde to môže byť vložené-pozrime sa nižšie.

Neviditeľný text v WhatsApp, VK, Instagram, Discord a hrách

Ako sme už povedali, všetky hlavné platformy sa ubezpečili, že počas spracovania sú vyrezané kontrolné, špeciálne a iné "neštandardné" znaky. Rozsah použitia takýchto symbolov je preto veľmi obmedzený, hoci na niektorých miestach sa môžu stále používať.

WhatsApp, Viber, Telegram:

Ak vložíte bežné medzery, WhatsApp vám rovnako ako ostatní poslovia nedovolí odoslať túto správu – tlačidlo "Odoslať" sa nezobrazí. U + 3164 môže byť odoslaný. Výsledkom je prázdna správa.

VK, Facebook Messenger:

Existuje rovnaká situácia ako v prípade poslov – prázdne správy môžete posielať do súkromných správ. Mimochodom, môžete tiež vložiť u+3164 do stavu VK-zobrazí sa ako prázdny riadok. Ak vložíte bežný priestor, stav sa odstráni a zobrazí sa nápis "nastaviť stav".

Tiktok, Instagram: Nie je možné použiť skrytý priestor. Obe platformy považujú charakter skrytého priestoru za bežný priestor.

Discord:

Discord vám umožňuje posielať prázdne správy. Zároveň, ak sa pokúsite vytvoriť kanál s prázdnym názvom, Discord vám to nedovolí:

ČASTÝCH

Ak do Skype vložím neviditeľný znak, bude Stav "offline"?

Nie, do stavového riadku účtu môžete napísať ľubovoľný text (vrátane skrytého priestoru), stav "online" alebo "offline" sa nezmení.

Aké sú problémy s nulovým znakom v programovaní?

Nemali by ste ich používať vo svojom kóde, ak ho nechcete zničiť. Ak potrebujete použiť znak na ukladanie alebo výstup, napíšte ho do premennej alebo na výstup pomocou kódu Unicode. Prečo je lepšie ho nepoužívať? Tu je príklad pre vás:

Ako vidíte, deklarovali sme premennú, ktorá má v názve medzery, ktoré Python zakazuje. PyCharm zároveň varuje, že s touto premennou niečo nie je v poriadku:

Nielenže porušujete pravidlá jazyka, ale tiež vkladáte hovor do kolies: na prístup k premennej budete musieť manuálne skopírovať a vložiť jej názov. Ak robíte nejaký projekt pre seba a chcete komplikovať svoj život, môžete použiť takéto priestory, ale ak pracujete na nejakom serióznom projekte, ani sa o to nepokúšajte, inak budete mať problémy.

Môže špeciálny znak rozbiť rozloženie?

Teoreticky je to možné za predpokladu, že rozloženie sa vykonáva krivo alebo zdedí zlé vzorce. Je lepšie nepoužívať takéto znaky v rozložení, ak nechcete, ak nechcete, aby sa všetko rozpadlo jeden deň.

Je možné použiť tieto symboly na hackovanie?

Technicky možno jeden z riadiacich znakov- '\ 0 ' - použiť na hacknutie systému prostredníctvom programu napísaného v C. nulový Terminátor označuje programu, že riadok sa skončil, a za terminátorom je možné napísať škodlivý kód. Je to však veľmi ťažké, pretože najprv musíte nájsť program, ktorý nesprávne spracováva prichádzajúce linky, a potom vám tiež umožní spustiť škodlivý kód z pamäte niekoho iného. Asi pred 15 rokmi to bol populárny spôsob hackovania, teraz je to skôr ako múzejná expozícia hackingu.

ČASTÝCH

Ak do Skype vložím neviditeľný znak, bude Stav "offline"?

Nie, do stavového riadku účtu môžete napísať ľubovoľný text (vrátane skrytého priestoru), stav "online" alebo "offline" sa nezmení.

Aké sú problémy s nulovým znakom v programovaní?

Nemali by ste ich používať vo svojom kóde, ak ho nechcete zničiť. Ak potrebujete použiť znak na ukladanie alebo výstup, napíšte ho do premennej alebo na výstup pomocou kódu Unicode. Prečo je lepšie ho nepoužívať? Tu je príklad pre vás:

Ako vidíte, deklarovali sme premennú, ktorá má v názve medzery, ktoré Python zakazuje. PyCharm zároveň varuje, že s touto premennou niečo nie je v poriadku:

Nielenže porušujete pravidlá jazyka, ale tiež vkladáte hovor do kolies: na prístup k premennej budete musieť manuálne skopírovať a vložiť jej názov. Ak robíte nejaký projekt pre seba a chcete komplikovať svoj život, môžete použiť takéto priestory, ale ak pracujete na nejakom serióznom projekte, ani sa o to nepokúšajte, inak budete mať problémy.

Môže špeciálny znak rozbiť rozloženie?

Teoreticky je to možné za predpokladu, že rozloženie sa vykonáva krivo alebo zdedí zlé vzorce. Je lepšie nepoužívať takéto znaky v rozložení, ak nechcete, ak nechcete, aby sa všetko rozpadlo jeden deň.

Je možné použiť tieto symboly na hackovanie?

Technicky možno jeden z riadiacich znakov- '\ 0 ' - použiť na hacknutie systému prostredníctvom programu napísaného v C. nulový Terminátor označuje programu, že riadok sa skončil, a za terminátorom je možné napísať škodlivý kód. Je to však veľmi ťažké, pretože najprv musíte nájsť program, ktorý nesprávne spracováva prichádzajúce linky, a potom vám tiež umožní spustiť škodlivý kód z pamäte niekoho iného. Asi pred 15 rokmi to bol populárny spôsob hackovania, teraz je to skôr ako múzejná expozícia hackingu.