Jika Anda pernah mencoba mengirim pesan kosong di Telegram, kemungkinan besar Anda menemukan bahwa baik tanda spasi maupun tanda baris baru (Alt + Enter) tidak dikirim - bidang input hanya dihapus. Pada saat yang sama, Anda dapat melihat bahwa orang lain benar-benar mengirimi Anda ruang kosong, dan mereka berhasil. Di mana sihirnya? Jika Anda menginginkan jawaban singkat-mereka memasukkan karakter "rusak" u+3164. Anda dapat menyalinnya dari tanda kurung dan menggunakan: "Svetlanskaya". Jika Anda menginginkan jawaban yang lebih rinci, di bawah ini kami akan memberi tahu Anda dari mana teks tak terlihat itu berasal, cara mendapatkan dan menggunakannya, mengapa Anda tidak boleh menggunakannya dalam kode dan karakter lain apa yang ada.

Simbol tak terlihat-bagaimana cara kerjanya?

Mari kita mulai penjelasan dengan tabel karakter dan pengkodean. Setiap komputer di tingkat Perangkat Keras memahami 2 karakter: 0 dan 1. Ini tidak nyaman bagi orang, karena kita masih lebih terbiasa dengan huruf yang dibentuk menjadi kata, kalimat, paragraf, dan sebagainya. Untuk bekerja dengan huruf – huruf ini tanpa masalah, kami telah membuat skema yang sangat sederhana-kami mengambil huruf secara berurutan dan memberi mereka nomor unik: a = 1, b = 2, c = 3 dan seterusnya. Kami juga memberikan angka unik untuk huruf kapital, tanda (titik, koma, tanda tanya dan sebagainya), spasi dan angka – daftar alat tenun pengenal unik yang ditugaskan untuk setiap karakter yang mungkin. Daftar ini disebut tabel kode karakter, dan tabel kode pertama diakui adalah ASCII:

Babak kedua kosong. Ini dimaksudkan untuk karakter regional. Tabel itu sendiri seperti informasi referensi. Ada juga pengkodean-satu set instruksi untuk mendekripsi tabel ini. Pengkodean muncul karena standar regional. Mereka diperlukan untuk membaca karakter "dengan benar". Jika kita mengambil pengkodean yang umum di CIS pada waktu itu, maka akan ada instruksi di dalamnya: "untuk mendapatkan huruf "Trojans" gunakan 8x3 di ASCII"; jika kita mengambil pengkodean yang digunakan di Jerman pada waktu itu, maka akan ditulis: "untuk mendapatkan huruf "Trojans" gunakan 8x3".



Karena sangat merepotkan karena lokalisasi ke dalam beberapa bahasa, tabel karakter baru, Unicode, ditemukan dan distandarisasi. Unicode dapat berisi lebih dari 1.000.000 karakter. Saat ini sekitar 100.000 karakter telah ditambahkan ke Unicode – jadi, 90% sel lainnya tersedia. Pengkodean UTF universal diciptakan untuk Unicode untuk memudahkan desainer menggambar font (ya, untuk setiap pengkodean terpisah, desainer perlu menggambar font terpisah).

Itu latar belakang yang cukup-sekarang saatnya untuk mencari tahu dari mana karakter yang tidak terlihat itu berasal. Ini semua tentang bug Unicode: beberapa karakter khusus (kontrol dan spasi) tidak berperilaku sebagaimana dimaksud. Kelompok bug yang paling menarik bagi kami adalah karakter yang tidak terlihat. Intinya adalah bahwa tanda itu harus istimewa dan harus ditampilkan sebagai spasi yang sangat kecil, tetapi pengkodean menganggapnya sebagai karakter penuh (seperti huruf atau angka) dan menampilkannya sebagai spasi besar. Anda mungkin sudah menebak bagaimana area tak terlihat sebagai tanda lengkap dapat digunakan-untuk memasukkan ruang yang tidak disediakan.

Teks tak terlihat – bagaimana cara menyalin dan menempel?

Untuk memulainya, kami akan memberi tahu Anda tentang berita sedih: bahkan bug penyandian ini secara bertahap diperbaiki. Sebelumnya (pada 2012), sebuah trik populer di "Vkontakte" – dimungkinkan untuk memasukkan karakter kontrol baris baru ke dalam status, dan status dibagi menjadi 2 baris. Sekarang Anda tidak dapat melakukan ini – situs memproses output data dengan benar, dan tulisan seperti itu tidak lagi merusak string:

Selain & nsbp, jejaring sosial dan Messenger telah memotong semua kontrol dan karakter khusus – Anda tidak dapat membalikkan teks atau menampilkannya ke belakang jika awalnya tidak disediakan oleh bahasa. Ada layanan seperti https://textinvert.ru/, yang memungkinkan Anda untuk mengubah teks, tetapi mereka tidak membalikkannya, tetapi mengambil huruf serupa dalam bahasa lain. Ini membutuhkan algoritma khusus. Sangat sulit untuk membuat teks kosong yang besar sekarang (meskipun masih memungkinkan), tetapi emoji tak terlihat dan tanda set kosong yang merusak banyak font juga diperbaiki sekarang. Yang tersisa hanyalah mengirim pesan kosong seperti ini:

Unicode U + 3164 untuk memasukkan karakter tak terlihat

Jadi, hal yang paling berguna adalah ruang tak terlihat, alias "string kosong". Bahkan, ada 3 karakter ini, di sini adalah kode mereka:

Kode karakter

Karakter

U + 115F

U+1160

U + 3164

Untuk melihat karakter, klik dua kali di atasnya dalam tabel. "Word", omong-omong, sedikit menyoroti simbol berwarna abu-abu.

Adapun sisa karakter, masih ada karakter spasi dengan alamat di daerah &#8192 – & # 8202, tapi kami menguji mereka dan menemukan bahwa utusan menganggap mereka sebagai ruang biasa – oleh karena itu, mereka tidak menarik. Jika Anda tetap membutuhkannya atau Anda ingin mengujinya sendiri di layanan yang berbeda - berikut adalah beberapa spasi dan karakter kontrol:

Kode karakter

Apa artinya?

Karakter

U+00A0

Ruang tanpa celah

 

U+2003

Em space

U+2007

Ruang keriting (apa pun artinya)

U+2008

Ruang tanda baca

U+2009

Ruang sempit

U+205F

Ruang matematika rata-rata

U + 3000

Ruang ideografis

 

Adapun tiga karakter di atas, awalnya mereka adalah placeholder untuk tumpang tindih karakter Korea. Mereka dianggap sebagai karakter penuh, meskipun mereka pengisi. Mungkin perilaku ini disebabkan oleh fakta bahwa ketika placeholder digunakan, hieroglif tidak boleh ditransfer ke baris baru. Jika karakter dianggap sebagai spasi, transfer dapat terjadi (tergantung pada karakter kontrol lainnya). Bagaimanapun, Anda dapat menyalin karakter kosong dari tabel dan menempelkannya di mana pun Anda butuhkan. Tapi di mana itu bisa dimasukkan – mari kita lihat di bawah.

Teks tak terlihat di WhatsApp, VK, Instagram, Discord, dan game

Seperti yang telah kami katakan, semua platform utama telah memastikan bahwa karakter kontrol, khusus, dan "non-standar" lainnya dipotong selama pemrosesan. Oleh karena itu, ruang lingkup penerapan simbol-simbol tersebut sangat terbatas, meskipun di beberapa tempat mereka masih dapat digunakan.

Whatsapp, Viber, Telegram:

Jika Anda memasukkan spasi biasa, maka WhatsApp, seperti Messenger lainnya, tidak mengizinkan Anda mengirim pesan ini – tombol "Kirim" tidak muncul. U + 3164 dapat dikirim. Hasilnya adalah pesan kosong.

VK, Facebook Messenger:

Ada situasi yang sama dengan Messenger – Anda dapat mengirim pesan kosong ke pesan pribadi. Omong – omong, Anda juga dapat menempatkan U+3164 dalam status VK-itu akan ditampilkan sebagai baris kosong. Jika Anda menempatkan ruang biasa, status akan dihapus dan Tulisan "Set status" akan terlihat.

TikTok, Instagram: Tidak ada pilihan untuk menggunakan ruang tersembunyi. Kedua platform menganggap karakter ruang tersembunyi sebagai ruang biasa.

Discord:

Discord memungkinkan Anda mengirim pesan kosong. Pada saat yang sama, jika Anda mencoba membuat saluran dengan nama kosong, Discord tidak akan mengizinkan anda melakukan ini:

FAQ

Jika saya meletakkan karakter yang tidak terlihat di Skype, apakah statusnya akan "offline"?

Tidak, Anda dapat menulis teks apa pun di bilah status akun (termasuk ruang tersembunyi), status "online" atau "offline" tidak akan berubah.

Apa masalah dengan karakter null dalam pemrograman?

Anda tidak boleh menggunakannya dalam kode Anda jika Anda tidak ingin merusaknya. Jika Anda perlu menggunakan karakter untuk penyimpanan atau output, menulis ke variabel atau output dengan Unicode-kode. Mengapa lebih baik tidak menggunakannya? Berikut adalah contoh untuk Anda:

Seperti yang Anda lihat, kami telah mendeklarasikan variabel yang memiliki spasi di namanya, yang dilarang Python. Pada saat yang sama, PyCharm memperingatkan bahwa ada sesuatu yang salah dengan variabel ini:

Anda tidak hanya melanggar aturan bahasa, Anda juga meletakkan jari-jari di roda Anda: untuk mengakses variabel, Anda perlu menyalin dan menempelkan namanya secara manual. Jika Anda melakukan beberapa proyek untuk diri sendiri dan ingin mempersulit hidup Anda, Anda dapat menggunakan ruang tersebut, tetapi jika Anda bekerja pada beberapa proyek yang serius, bahkan tidak mencoba untuk melakukan hal ini, jika tidak Anda akan berada dalam kesulitan.

Bisakah karakter khusus merusak tata letak?

Secara teori, ini dimungkinkan asalkan tata letak dilakukan dengan bengkok atau mewarisi pola yang buruk. Lebih baik tidak menggunakan karakter seperti itu dalam tata letak, jika Anda tidak mau jika Anda tidak ingin semuanya rusak suatu hari nanti.

Apakah mungkin untuk menggunakan simbol-simbol ini untuk hacking?

Secara teknis, salah satu karakter kontrol – '\0' – dapat digunakan untuk meretas sistem melalui program yang ditulis dalam C. Terminator nol menunjukkan kepada program bahwa baris telah berakhir, dan kode berbahaya dapat ditulis setelah terminator. Tetapi ini sangat sulit, karena pertama, Anda perlu menemukan program yang salah memproses saluran masuk, dan kemudian juga memungkinkan Anda untuk menjalankan kode berbahaya dari memori orang lain. Sekitar 15 tahun yang lalu itu adalah cara peretasan yang populer, sekarang lebih seperti pameran peretasan museum.

FAQ

Jika saya meletakkan karakter yang tidak terlihat di Skype, apakah statusnya akan "offline"?

Tidak, Anda dapat menulis teks apa pun di bilah status akun (termasuk ruang tersembunyi), status "online" atau "offline" tidak akan berubah.

Apa masalah dengan karakter null dalam pemrograman?

Anda tidak boleh menggunakannya dalam kode Anda jika Anda tidak ingin merusaknya. Jika Anda perlu menggunakan karakter untuk penyimpanan atau output, menulis ke variabel atau output dengan Unicode-kode. Mengapa lebih baik tidak menggunakannya? Berikut adalah contoh untuk Anda:

Seperti yang Anda lihat, kami telah mendeklarasikan variabel yang memiliki spasi di namanya, yang dilarang Python. Pada saat yang sama, PyCharm memperingatkan bahwa ada sesuatu yang salah dengan variabel ini:

Anda tidak hanya melanggar aturan bahasa, Anda juga meletakkan jari-jari di roda Anda: untuk mengakses variabel, Anda perlu menyalin dan menempelkan namanya secara manual. Jika Anda melakukan beberapa proyek untuk diri sendiri dan ingin mempersulit hidup Anda, Anda dapat menggunakan ruang tersebut, tetapi jika Anda bekerja pada beberapa proyek yang serius, bahkan tidak mencoba untuk melakukan hal ini, jika tidak Anda akan berada dalam kesulitan.

Bisakah karakter khusus merusak tata letak?

Secara teori, ini dimungkinkan asalkan tata letak dilakukan dengan bengkok atau mewarisi pola yang buruk. Lebih baik tidak menggunakan karakter seperti itu dalam tata letak, jika Anda tidak mau jika Anda tidak ingin semuanya rusak suatu hari nanti.

Apakah mungkin untuk menggunakan simbol-simbol ini untuk hacking?

Secara teknis, salah satu karakter kontrol – '\0' – dapat digunakan untuk meretas sistem melalui program yang ditulis dalam C. Terminator nol menunjukkan kepada program bahwa baris telah berakhir, dan kode berbahaya dapat ditulis setelah terminator. Tetapi ini sangat sulit, karena pertama, Anda perlu menemukan program yang salah memproses saluran masuk, dan kemudian juga memungkinkan Anda untuk menjalankan kode berbahaya dari memori orang lain. Sekitar 15 tahun yang lalu itu adalah cara peretasan yang populer, sekarang lebih seperti pameran peretasan museum.