← Blog

Kenapa spasi kosongmu ditolak: penjelasan teknisnya

✓ Data teknis artikel ini diverifikasi terhadap basis data Unicode setiap kali situs diterbitkan.

Kamu menyalin spasi kosong dari sebuah situs, menempelnya, dan… ditolak. Padahal di situs lain karakter yang «sama» berhasil. Yang membedakan bukan keberuntungan — ada tiga mekanisme teknis yang memutuskan nasib setiap karakter tak terlihat, dan ketiganya bisa kamu pahami dalam lima menit.

Mekanisme pertama: pembersihan otomatis

Hampir semua aplikasi menjalankan pembersihan pada teks yang kamu kirim: spasi di awal dan akhir dibuang, deretan spasi dirapatkan. Pembersihan ini bekerja berdasarkan daftar resmi karakter spasi di standar Unicode — bukan berdasarkan apa yang terlihat kosong di layar. Spasi biasa, spasi lebar, spasi tipis: semuanya masuk daftar itu dan semuanya dibuang.

Karakter yang selamat adalah yang tidak masuk daftar spasi meski tampil kosong: karakter golongan huruf seperti Pengisi Hangul, dan simbol seperti pola braille kosong. Bagi mesin pembersih, mereka isi teks yang sah.

Mekanisme kedua: golongan karakter

Setiap karakter Unicode punya golongan resmi: huruf, angka, simbol, spasi, format, dan seterusnya. Validasi kolom sering memakai golongan ini sebagai saringan. Kolom nama yang menuntut «minimal satu huruf» akan menerima Pengisi Hangul (golongan huruf) dan menolak spasi lebar nol (golongan format). Kolom chat biasanya lebih longgar — karena itu karakter yang gagal di nama bisa saja berhasil di pesan.

Inilah alasan pustaka kami membagi 36 karakternya menjadi tiga kelompok fungsi, bukan satu daftar panjang: kelompoknya adalah ramalan perilakunya.

Mekanisme ketiga: batas byte

Di balik layar, panjang teks dihitung dalam byte. Huruf latin memakan satu byte; kebanyakan karakter tak terlihat memakan tiga byte. Kolom nama berkapasitas dua puluh byte yang sudah berisi sepuluh huruf hanya menyisakan ruang untuk tiga karakter kosong. Gejalanya khas: namanya tampak pendek, tapi ditolak karena «terlalu panjang». Alat kami menampilkan hitungan byte persis karena kasus ini.

Cara mendiagnosis kegagalanmu sendiri

  1. Cek isi salinan. Tempel di kolom uji: kalau hitungan karakter tak terlihatnya nol, masalahnya di sumber salinan — bukan di aplikasi tujuan.
  2. Cocokkan golongannya. Gagal di kolom nama? Pastikan kamu memakai kelompok karakter untuk nama, bukan spasi tipografis.
  3. Hitung byte-nya. Ditolak karena panjang? Kurangi jumlah karakter tak terlihat atau pendekkan bagian yang terlihat.
  4. Ganti karakter. Aturan aplikasi berubah lewat pembaruan; kalau satu karakter mulai ditolak, saudaranya segolongan biasanya masih lolos.

Yang tidak bisa diperbaiki dari sisimu

Kadang sebuah aplikasi memutuskan menyaring karakter tertentu sepenuhnya — itu kebijakan platform, dan tidak ada karakter ajaib yang menembusnya selamanya. Kami memperbarui catatan perilaku di halaman alat begitu ada laporan, dan kolom uji selalu menunjukkan keadaan salinanmu yang sebenarnya. Dengan tiga mekanisme di atas, setidaknya kamu tahu persis di tahap mana usahamu berhenti — dan itu setengah jalan menuju berhasil.