Jeśli kiedykolwiek próbowałeś wysłać pustą wiadomość w Telegramie, najprawdopodobniej odkryłeś, że ani znak spacji, ani znak nowej linii (Alt + Enter) nie są wysyłane - pole wprowadzania jest po prostu wyczyszczone. W tym samym czasie można było zobaczyć, że inni ludzie dosłownie wysyłają ci pustą przestrzeń i odnoszą sukces. Gdzie tu jest magia? Jeśli chcesz krótką odpowiedź-wstawiają" złamany " znak u + 3164. Możesz skopiować go z nawiasów i użyć:"ㅤㅤㅤ". Jeśli chcesz uzyskać bardziej szczegółową odpowiedź, poniżej powiemy ci, skąd pochodzi niewidoczny tekst, jak go uzyskać i używać, dlaczego nie powinieneś go używać w kodzie i jakie są inne znaki.

Niewidzialny Symbol - jak to działa?

Zacznijmy Wyjaśnienie od tabel znaków i kodowań. Każdy komputer na poziomie sprzętowym rozumie 2 znaki: 0 i 1. Nie jest to wygodne dla ludzi, ponieważ wciąż jesteśmy bardziej przyzwyczajeni do liter, które są formowane w słowa, zdania, akapity i tak dalej. Aby pracować z tymi literami bez żadnych problemów, wymyśliliśmy bardzo prosty schemat-bierzemy litery w kolejności i nadajemy im unikalne liczby: a = 1, b = 2, c = 3 i tak dalej. Nadajemy również unikalne liczby do wielkich liter, znaków (kropka, przecinek, znak zapytania itp.), białych spacji i liczb – lista tworzy unikalny identyfikator, który jest przypisany do każdego możliwego znaku. Ta lista nazywa się tabelą kodów znaków, a pierwszą rozpoznaną tabelą kodów była ASCII:

Druga połowa jest pusta. Przeznaczony jest dla znaków regionalnych. Sama tabela jest jak Informacja odniesienia. Istnieje również kodowanie-zestaw instrukcji do odszyfrowania tej tabeli. Kodowania pojawiły się ze względu na standardy regionalne. Są one potrzebne do prawidłowego odczytywania znaków. Jeśli weźmiemy kodowanie, które było powszechne w CIS w tym czasie, to będzie w nim instrukcja: "aby uzyskać literę" г "użyj 8X3 w ASCII"; jeśli weźmiemy kodowanie, które było używane w Niemczech w tym czasie, to będzie napisane: "aby uzyskać literę" β"użyj 8x3".



Ponieważ było to strasznie niewygodne z powodu lokalizacji na kilka języków, wynaleziono i znormalizowano nową tablicę znaków, Unicode. Unicode może zawierać więcej niż 1 000 000 znaków. W tej chwili do Unicode dodano około 100 000 znaków – tak więc dostępnych jest kolejne 90% komórek. Uniwersalne kodowanie UTF zostało wymyślone dla Unicode, aby ułatwić projektantom rysowanie czcionek (tak, dla każdego osobnego kodowania projektanci muszą narysować oddzielną czcionkę).

Wystarczy tło - teraz nadszedł czas, aby dowiedzieć się, skąd pochodzi niewidzialna postać. Chodzi o błędy Unicode: niektóre znaki specjalne (sterujące i białe znaki) nie zachowują się zgodnie z przeznaczeniem. Najciekawszą dla nas grupą błędów jest niewidzialna postać. Chodzi o to, że znak powinien być wyjątkowy i powinien być wyświetlany jako bardzo mała biała spacja, ale kodowanie postrzega go jako pełnoprawny znak (jak litera lub liczba) i wyświetla go jako dużą przestrzeń. Być może już zgadłeś, w jaki sposób można użyć niewidzialnego obszaru jako pełnoprawnego znaku - wstawić przestrzeń, w której nie jest ona zapewniona.

Niewidoczny tekst – jak skopiować i wkleić?

Na początek poinformujemy Cię o smutnej wiadomości: nawet te błędy kodowania są stopniowo naprawiane. Wcześniej (w 2012 roku) sztuczka była popularna w "Vkontakte" – możliwe było wstawienie znaku kontrolnego nowej linii do statusu, a status został podzielony na 2 linie. Teraz nie możesz tego zrobić – witryna poprawnie przetwarza dane wyjściowe, a taki napis nie łamie już ciągu znaków:

Oprócz & nsbp, sieci społecznościowe i komunikatory mają wycięte wszystkie znaki kontrolne i specjalne – nie można odwrócić tekstu do góry nogami ani wyświetlić go do tyłu, jeśli nie jest początkowo dostarczany przez język. Istnieją usługi takie jak https://textinvert.ru/, które pozwalają na zmianę tekstu, ale nie odwracają go do góry nogami, ale odbierają podobne litery w innych językach. Wymaga specjalnego algorytmu. Bardzo trudno jest teraz utworzyć duży pusty tekst (chociaż nadal jest to możliwe), ale niewidoczne emotikony i pusty znak zestawu, który złamał wiele czcionek, są również naprawione. Pozostaje tylko wysyłać puste wiadomości jak te:

Unicode U+3164 do wstawiania niewidocznego znaku

Tak więc najbardziej użyteczną rzeczą jest niewidzialna przestrzeń, aka "pusty ciąg". W rzeczywistości są 3 tych znaków, oto ich kody:

Kod postaci

Znak

U+115F

U+1160

U+3164

Aby zobaczyć znak, kliknij dwukrotnie na niego w tabeli. "Słowo", nawiasem mówiąc, lekko podkreśla symbol w kolorze szarym.

Jeśli chodzi o resztę znaków, nadal istnieją białe znaki z adresami w obszarze & # 8192 - & # 8202, ale przetestowaliśmy je i okazało się, że posłańcy postrzegają je jako zwykłe przestrzenie – dlatego nie są interesujące. Jeśli i tak ich potrzebujesz lub chcesz przetestować je samodzielnie w różnych serwisach - oto kilka spacji i znaków sterujących:

Kod postaci

Co to znaczy?

Znak

U+00A0

Przestrzeń bez przerwy

 

U+2003

Przestrzeń Em

U+2007

Curly space (whatever that means)

U+2008

Przestrzeń interpunkcyjna

U+2009

Wąska przestrzeń

U+205F

Średnia przestrzeń matematyczna

U+3000

Przestrzeń ideograficzna

 

Jeśli chodzi o trzy powyższe znaki, początkowo są to symbole zastępcze dla nakładających się znaków koreańskich. Są one uważane za pełnoprawne znaki, chociaż są wypełniaczami. Być może Takie zachowanie wynika z faktu, że gdy używany jest Element Zastępczy, hieroglif nie powinien być przenoszony do nowej linii. Jeśli znak jest uważany za białą spację, może nastąpić transfer (zależy to od innych znaków sterujących). W każdym razie możesz skopiować pusty znak z tabeli i wkleić go w dowolnym miejscu. Ale gdzie można go wstawić-zobaczmy poniżej.

Niewidoczny tekst w WhatsApp, VK, Instagram, Discord i grach

Jak już powiedzieliśmy, wszystkie główne platformy zadbały o to, aby znaki sterujące, specjalne i inne "niestandardowe" zostały wycięte podczas przetwarzania. Dlatego zakres stosowania takich symboli jest bardzo ograniczony, chociaż w niektórych miejscach nadal można z nich korzystać.

WhatsApp, Viber, Telegram:

Jeśli wstawisz zwykłą białą spację, WhatsApp, podobnie jak inne komunikatory, nie pozwala na wysłanie tej wiadomości – przycisk "Wyślij" nie pojawia się. Można wysłać U+3164. Rezultatem jest pusta wiadomość.

VK, Facebook Messenger:

Jest taka sama sytuacja jak w przypadku komunikatorów-możesz wysyłać puste wiadomości do prywatnych wiadomości. Nawiasem mówiąc, możesz również umieścić U + 3164 w statusie VK – będzie on wyświetlany jako pusta linia. Jeśli umieścisz zwykłą spację, status zostanie usunięty, a napis "Ustaw status" będzie widoczny.

TikTok, Instagram: Nie ma możliwości korzystania z ukrytej przestrzeni. Obie platformy traktują postać ukrytej przestrzeni jako regularną przestrzeń.

Niezgoda:

Discord pozwala na wysyłanie pustych wiadomości. Jednocześnie, jeśli spróbujesz utworzyć kanał o pustej nazwie, Discord nie pozwoli Ci na to:

FAQ

Jeśli umieszczę niewidzialną postać w Skype, czy status będzie "offline"?

Nie, możesz napisać dowolny tekst na pasku stanu konta (w tym ukryte miejsce), status "online" lub "offline" nie zmieni się.

Jakie są problemy ze znakiem null w programowaniu?

Nie powinieneś używać ich w swoim kodzie, jeśli nie chcesz go zepsuć. Jeśli chcesz użyć znaku do przechowywania lub wyjścia, zapisz go do zmiennej lub do wyjścia za pomocą kodu Unicode. Dlaczego lepiej jej nie używać? Oto przykład dla Ciebie:

Jak widać, zadeklarowaliśmy zmienną, która ma spacje w nazwie, czego zabrania Python. Jednocześnie PyCharm ostrzega, że coś jest nie tak z tą zmienną:

Nie tylko naruszasz zasady języka, ale także umieszczasz szprychę w swoich kołach: aby uzyskać dostęp do zmiennej, musisz ręcznie skopiować i wkleić jej nazwę. Jeśli robisz jakiś projekt dla siebie i chcesz skomplikować swoje życie, możesz użyć takich przestrzeni, ale jeśli pracujesz nad jakimś poważnym projektem, nawet nie próbuj tego robić, w przeciwnym razie będziesz miał kłopoty.

Czy znak specjalny może złamać układ?

Teoretycznie jest to możliwe pod warunkiem, że układ jest zrobiony krzywo lub odziedziczy złe wzorce. Lepiej nie używać takich znaków w układzie, jeśli nie chcesz, jeśli nie chcesz, aby wszystko się zepsuło pewnego dnia.

Czy można użyć tych symboli do hakowania?

Technicznie, jeden ze znaków sterujących - '\ 0 ' - może być użyty do zhakowania systemu przez program napisany w C. null terminator wskazuje programowi, że linia się skończyła, a złośliwy kod może być napisany po Terminatorze. Ale jest to bardzo trudne, ponieważ po pierwsze, musisz znaleźć program, który nieprawidłowo przetwarza przychodzące linie, a następnie pozwala również uruchomić złośliwy kod z czyjejś pamięci. Około 15 lat temu był to popularny sposób hakowania, teraz jest bardziej jak wystawa muzealna hakowania.

FAQ

Jeśli umieszczę niewidzialną postać w Skype, czy status będzie "offline"?

Nie, możesz napisać dowolny tekst na pasku stanu konta (w tym ukryte miejsce), status "online" lub "offline" nie zmieni się.

Jakie są problemy ze znakiem null w programowaniu?

Nie powinieneś używać ich w swoim kodzie, jeśli nie chcesz go zepsuć. Jeśli chcesz użyć znaku do przechowywania lub wyjścia, zapisz go do zmiennej lub do wyjścia za pomocą kodu Unicode. Dlaczego lepiej jej nie używać? Oto przykład dla Ciebie:

Jak widać, zadeklarowaliśmy zmienną, która ma spacje w nazwie, czego zabrania Python. Jednocześnie PyCharm ostrzega, że coś jest nie tak z tą zmienną:

Nie tylko naruszasz zasady języka, ale także umieszczasz szprychę w swoich kołach: aby uzyskać dostęp do zmiennej, musisz ręcznie skopiować i wkleić jej nazwę. Jeśli robisz jakiś projekt dla siebie i chcesz skomplikować swoje życie, możesz użyć takich przestrzeni, ale jeśli pracujesz nad jakimś poważnym projektem, nawet nie próbuj tego robić, w przeciwnym razie będziesz miał kłopoty.

Czy znak specjalny może złamać układ?

Teoretycznie jest to możliwe pod warunkiem, że układ jest zrobiony krzywo lub odziedziczy złe wzorce. Lepiej nie używać takich znaków w układzie, jeśli nie chcesz, jeśli nie chcesz, aby wszystko się zepsuło pewnego dnia.

Czy można użyć tych symboli do hakowania?

Technicznie, jeden ze znaków sterujących - '\ 0 ' - może być użyty do zhakowania systemu przez program napisany w C. null terminator wskazuje programowi, że linia się skończyła, a złośliwy kod może być napisany po Terminatorze. Ale jest to bardzo trudne, ponieważ po pierwsze, musisz znaleźć program, który nieprawidłowo przetwarza przychodzące linie, a następnie pozwala również uruchomić złośliwy kod z czyjejś pamięci. Około 15 lat temu był to popularny sposób hakowania, teraz jest bardziej jak wystawa muzealna hakowania.