← Kembali ke Atlas Karakter
Laboratorium Unicode

Mengapa Teks Zalgo Tumbuh ke Atas dan ke Bawah?

Teks Zalgo adalah teks dasar biasa yang dibebani tanda penggabung. Pelajari cara diakritik melekat, mengapa normalisasi tidak serta-merta menghapusnya, dan di mana efek ini gagal.

Mikroskop karakter

Ubah contoh untuk melihat titik kode yang membentuk tampilan di layar.

Setiap huruf yang terlihat diikuti beberapa tanda penggabung. Tanda-tanda itu tidak memiliki lebar maju normal, sehingga banyak di antaranya dapat menempati posisi horizontal yang sama.

24 titik kode5 unit terlihat
  1. U+005A
  2. U+0334
  3. U+0321
  4. U+031B
  5. U+032B
  6. U+0339
  7. U+033F
  8. U+0061
  9. U+0335
  10. U+0321
  11. U+0333
  12. U+030B
  13. U+006C
  14. U+0334
  15. U+0319
  16. U+0313
  17. U+0067
  18. U+0336
  19. U+0324
  20. U+0308
  21. U+006F
  22. U+0337
  23. U+031C
  24. U+033D

Teks Zalgo tampak seolah-olah sebuah font melarikan diri dari kotak barisnya:

Z̴̡̛̫̹̿a̵̡̳̋l̴̙̓g̶̤̈o̷̜̽

Ini bukan gambar dan biasanya bukan font rusak. Efek tersebut muncul karena banyak tanda penggabung ditempatkan setelah karakter dasar biasa.

Apa yang dilakukan tanda penggabung

Sistem tulisan membutuhkan aksen, tanda vokal, tanda nada, tanda kantilasi, dan berbagai lambang lain yang berkaitan dengan karakter di dekatnya. Unicode mengodekan banyak di antaranya sebagai tanda penggabung tanpa spasi.

Ambil contoh . Karakter itu dapat direpresentasikan sebagai:

  • satu karakter prakomposisi U+00E9 LATIN SMALL LETTER E WITH ACUTE; atau
  • U+0065 LATIN SMALL LETTER E diikuti U+0301 COMBINING ACUTE ACCENT.

Titik kode kedua memodifikasi yang pertama. Mesin perender menempatkan aksen di atas karakter dasar tanpa menggeser kursor selebar karakter biasa.

Generator Zalgo mengeksploitasi mekanisme ini dengan menambahkan jauh lebih banyak tanda daripada yang dibutuhkan ejaan normal—di atas, di bawah, dan menembus setiap huruf.

Mengapa tanda-tandanya dapat menumpuk begitu tinggi

Karakter penggabung memiliki canonical combining class yang membantu menentukan urutannya di sekitar karakter dasar. Font menyediakan titik kait dan data posisi untuk kombinasi umum. Ketika urutan sangat tidak lazim atau terlalu panjang, perender harus berimprovisasi.

Satu font mungkin menumpuk tanda dengan rapi. Font lain dapat membiarkannya bertabrakan, menimpa baris di sebelah, atau keluar dari tombol. Teksnya tetap berupa urutan yang sah, tetapi tata letaknya tidak dirancang untuk puluhan aksen pada satu huruf.

Inilah pula sebabnya efek terlihat berbeda antara peramban dan sistem operasi. Unicode mengidentifikasi karakter beserta propertinya; font menentukan gambar dan titik lekat yang tepat.

Normalisasi bukan berarti “menghapus aksen”

Normalisasi Unicode memudahkan perbandingan urutan teks yang ekuivalen. NFC dapat menggabungkan karakter dasar dan aksen menjadi satu karakter prakomposisi bila bentuk tersebut tersedia. NFD menguraikan banyak karakter prakomposisi menjadi urutan dasar-plus-tanda. Keduanya juga menata tanda penggabung dalam urutan kanonis.

Namun, keduanya bukan pembersih Zalgo umum. Kebanyakan kombinasi ekstrem tidak memiliki padanan prakomposisi, dan tanda-tandanya tetap merupakan karakter terenkode yang bermakna setelah normalisasi.

Produk yang menawarkan pilihan “teks polos” harus mengambil keputusan editorial terpisah: tanda mana yang merupakan bagian bahasa, mana yang dekorasi, dan mana yang boleh dihapus? Menghapus semua tanda secara membabi buta dapat merusak bahasa Vietnam, Arab, Ibrani, aksara-aksara India, serta banyak bahasa lain.

Satu huruf visual dapat memuat banyak titik kode

Segmentasi teks Unicode biasanya menjaga karakter dasar dan tanda penggabung berikutnya dalam satu klaster grafem yang diperluas. Dengan demikian, kursor dapat melewati sebagai satu unit meskipun dikodekan dengan dua titik kode.

Zalgo mendorong aturan yang sama sampai ekstrem. Satu huruf yang terlihat dapat memuat sepuluh, dua puluh, atau lebih titik kode. Akibatnya muncul kejutan pada:

  • batas panjang basis data;
  • pemotongan SMS dan notifikasi;
  • gerakan kursor dan seleksi;
  • tinggi baris dan pemangkasan;
  • sistem pencarian dan moderasi;
  • keluaran pembaca layar.

Menghitung apa yang dilihat pengguna tidak sama dengan menghitung apa yang disimpan komputer.

Efek dekoratif, infrastruktur yang sah

Tanda penggabung bukan “karakter buruk”. Tanda-tanda itu penting bagi penulisan digital. Efek glitch justru bekerja karena Unicode dan sistem pembentukan modern mendukung aksara kompleks, bukan berasumsi bahwa setiap unit yang terlihat adalah satu huruf Inggris.

Risikonya terletak pada konteks dan jumlah. Tumpukan besar dapat membuat antarmuka sulit dibaca, menghasilkan kotak baris yang sangat tinggi, atau menyembunyikan perbedaan yang tetap diproses sistem otomatis. Penelitian tentang gangguan Unicode yang nyaris tak terlihat juga menunjukkan bahwa karakter tersembunyi, perilaku penggabungan, homoglif, dan pengurutan ulang dapat membingungkan sistem pemrosesan bahasa.

Gunakan tanpa merusak halaman

Untuk unggahan dekoratif:

  • batasi efek pada judul singkat atau satu kata;
  • gunakan intensitas rendah atau sedang;
  • pratinjau di aplikasi tujuan;
  • sertakan versi teks polos jika kata-katanya penting;
  • hindari handle akun, tautan, alamat surel, dan informasi keselamatan.

Untuk antarmuka produk, batasi masukan berdasarkan titik kode sekaligus klaster grafem, kendalikan luapan, dan uji urutan penggabung yang sangat panjang. Jangan samakan “terlihat pendek” dengan “murah untuk disimpan dan dirender.”

Teks Zalgo adalah tipografi lewat akumulasi: huruf dasarnya tetap biasa, sementara tanda Unicode nyata menumpuk menjadi bentuk yang luar biasa.

Generator teks glitch memungkinkan Anda mengatur jumlah tanda yang ditambahkan. Mulailah perlahan, lalu periksa hasilnya di atas sebelum memakai tingkat terkuat.

Sumber dan bacaan lanjutan

  1. Standar
  2. Standar
  3. Standar
  4. Makalah riset
    Bad Characters: Imperceptible NLP Attacks

    Nicholas Boucher, Ilia Shumailov, Ross Anderson, and Nicolas Papernot 2022 IEEE Symposium on Security and Privacy 2022 DOI 10.1109/SP46214.2022.9833641

Komentar

Memuat komentar…