Karakter tersembunyi dalam teks: di mana letaknya dan cara menghapusnya
Karakter tersembunyi adalah titik kode Unicode yang tidak terlihat, seperti spasi tanpa lebar, spasi insecable, dan penanda arah. Karakter ini tampak seperti spasi biasa atau bahkan tidak tampak sama sekali, sehingga teks terlihat normal, tetapi pencarian, kode, dan validasi formulir memperlakukannya sebagai teks yang berbeda. Anda menemukannya dengan memeriksa titik kodenya, dan menghapusnya dengan menghilangkan atau mengganti karakter spesifik tersebut.
Hapus karakter tersembunyiKarakter aneh tak terlihat di teks sayaPakai gratisDari mana asalnya
Sebagian besar karakter tersembunyi masuk melalui salin-tempel, bukan diketik:
- Halaman web. Situs menggunakan spasi insecable (U+00A0) agar dua kata tidak terpisah di akhir baris, dan spasi tanpa lebar (U+200B) untuk menandai tempat kata panjang boleh dipenggal. Saat Anda menyalin paragraf, karakter ini ikut tersalin.
- Pengolah kata. Tanda hubung lunak (U+00AD) disisipkan untuk pemenggalan kata. Karakter ini tidak terlihat kecuali baris benar-benar terpotong di titik tersebut. Beberapa editor juga otomatis menyisipkan spasi insecable di tempat tertentu.
- Aplikasi chat dan email. Pesan yang disalin dari aplikasi chat atau klien email dapat membawa penyambung tanpa lebar dan penanda arah, terutama jika teksnya mencampur bahasa.
- Teks dengan arah campuran. Teks berbahasa Arab, Ibrani, dan teks campuran menggunakan penanda arah seperti penanda kiri-ke-kanan (U+200E), penanda kanan-ke-kiri (U+200F), serta karakter penyisipan dan penimpaan (U+202A sampai U+202E). Karakter ini mengatur cara baris ditampilkan, bukan isi katanya.
- Byte order mark. Byte order mark (BOM, U+FEFF) di awal berkas adalah tanda pengenal yang ditulis oleh sebagian editor. Karakter ini tidak terlihat, tetapi menjadi karakter pertungan sungguhan ketika berkas dibaca sebagai teks biasa.
- Jendela chat AI. Teks yang disalin dari sebagian antarmuka chat AI juga dapat mengandung karakter ini. Penyebab yang mungkin adalah cara teks ditampilkan dan disalin, jadi jangan menganggapnya sebagai tanda niat tertentu.
Mengapa menimbulkan masalah
Setiap karakter tersembunyi adalah titik kode sungguhan, sehingga ia mengubah teks meskipun tampilannya sama persis:
- Pencarian gagal. Spasi tanpa lebar di dalam sebuah kata merusak kecocokan, sehingga pencarian kata tersebut tidak menemukan apa pun.
- Kode rusak. Spasi insecable dalam berkas sumber adalah kesalahan sintaks di banyak bahasa pemrograman, dan pesan errornya sering menunjuk ke baris yang terlihat benar. Panduan tanda kutip melengkung membahas masalah tempel umum lainnya dalam kode.
- Validasi formulir menolak input. Alamat email dengan spasi tanpa lebar setelah tanda @ terlihat valid, tetapi tetap gagal diperiksa.
- Jumlah karakter meleset. Penghitungan karakter bisa menyertakan atau mengecualikan karakter ini tergantung alat yang dipakai, sehingga teks yang sama bisa menghasilkan dua total berbeda. Hitung teks sebelum dan sesudah dibersihkan dengan penghitung kata untuk melihat perbedaannya.
Sebagai contoh kecil, kata "invoice" terdiri dari tujuh huruf. Jika di dalamnya ada spasi tanpa lebar, kata yang sama menjadi delapan titik kode, dan tampilannya di layar tetap sama persis. Pencarian "invoice" tidak akan menemukan versi kedua.
Cara melihatnya
Melihat teks saja tidak membantu, jadi gunakan salah satu cara berikut:
- Tempel teks ke alat yang menampilkan titik kode, misalnya hapus karakter tersembunyi, yang melaporkan apa yang ditemukan sebelum ada yang diubah.
- Di editor kode, aktifkan pengaturan yang menampilkan spasi atau karakter khusus. Spasi insecable kemudian tampil dengan tanda yang berbeda dari spasi biasa.
- Dalam bahasa pemrograman, cetak titik kode dari string yang mencurigakan. Di Python, misalnya,
[hex(ord(c)) for c in text]menampilkan setiap karakter, sehingga spasi insecable muncul sebagai 0xa0 dan spasi tanpa lebar sebagai 0x200b.
Cara menghapusnya
Penghapusan harus spesifik. Menghapus setiap karakter non-ASCII juga akan merusak aksen, tanda kutip, dan huruf dari bahasa lain. Sebagai gantinya:
- Ganti spasi insecable dengan spasi biasa, karena hampir selalu itu yang dimaksud.
- Hapus spasi tanpa lebar, tanda hubung lunak, byte order mark, dan penanda arah yang tercecer.
- Pertahankan huruf beraksen, tanda kutip melengkung, dan tanda baca yang sebenarnya.
Perbaiki teks tempelan dibuat untuk teks yang berasal dari tempat lain, jadi gunakan alat ini jika salinan juga memiliki pemenggalan baris yang rusak atau spasi yang aneh.
Cara melakukannya dengan fixmint
- Tempel teks ke kolom Teks Anda.
- Baca daftar temuan. Setiap karakter disebutkan namanya, misalnya ZWSP untuk spasi tanpa lebar, beserta tindakan yang akan dilakukan padanya.
- Biarkan Pertahankan penyambung di dalam emoji tetap dicentang, supaya rangkaian emoji tetap tampil sebagai satu simbol.
- Centang Ubah juga tanda kutip melengkung, tanda hubung en/em, dan … menjadi ASCII biasa hanya untuk kode atau data, lalu gunakan Salin atau Unduh .txt.
Kasus khusus
- Rangkaian emoji memang menggunakan penyambung tanpa lebar. Jika dihapus, satu emoji akan terpecah menjadi beberapa simbol.
- Spasi insecable tepat dalam sebagian tipografi, misalnya di antara angka dan satuannya, serta dalam beberapa tanda baca bahasa Prancis. Gantilah hanya jika Anda yakin itu karakter yang tercecer.
- Setelah teks dibersihkan, bandingkan dengan teks asli untuk melihat dengan tepat apa yang berubah.
Jawaban singkat
Apakah karakter tersembunyi menandakan bahwa teks ditulis oleh AI?
Tidak. Karakter ini berasal dari halaman web, pengolah kata, aplikasi chat, dan salin-tempel secara umum. Keberadaannya tidak menunjukkan siapa atau apa yang menulis teks tersebut.
Apakah menghapus semua karakter non-ASCII akan menyelesaikan masalah?
Tidak. Cara itu juga akan menghapus aksen, tanda kutip, dan huruf dari bahasa lain. Hapus saja titik kode tak terlihat yang spesifik.
Bagaimana saya tahu apakah sebuah string mengandung karakter tersembunyi?
Bandingkan panjangnya dengan jumlah karakter yang bisa Anda lihat, atau tempel ke alat yang menampilkan titik kode. Jika jumlahnya berbeda, berarti ada sesuatu yang tak terlihat di dalamnya.
Diterjemahkan dari Asli dalam bahasa Inggris dengan bantuan AI.
Komentar
Belum ada komentar. Jadilah yang pertama.


