Watermark Teks AI: Karakter Tersembunyi Versus Tanda Pemilihan Token
Watermark teks AI datang dalam dua bentuk, dan hanya satu yang terbuat dari karakter yang bisa Anda hapus.
| Jenis watermark | Di mana letaknya | Terlihat oleh alat ini | Dapat dihapus oleh alat ini |
|---|---|---|---|
| Tanda karakter tersembunyi | Dalam byte teks, sebagai titik kode tak terlihat atau tidak biasa | Ya | Ya |
| Tanda pemilihan token | Dalam pilihan kata itu sendiri | Tidak | Tidak |
Tanda karakter tersembunyi adalah titik kode yang disimpan editor teks Anda dan tidak pernah digambar layar Anda.
Tanda pemilihan token dibawa oleh kata mana yang dipilih model di setiap langkah, sehingga tidak ada karakter untuk ditemukan dan tidak ada karakter untuk dihapus. Setiap alat AI yang menandai keluaran teks saat ini memakai jenis ini.
Apa yang Membuat Karakter Unicode Tak Terlihat?
Sebuah karakter tak terlihat ketika tidak mengambil lebar di layar. Unicode mencatat perilaku itu dengan properti Default_Ignorable_Code_Point dan dengan kategori umum Cf, yang berarti format.
Default_Ignorable_Code_Point adalah properti turunan, diterbitkan sebagai daftar teks polos di DerivedCoreProperties.txt untuk setiap versi standar. Pembersih ini mengunci Unicode 17.0, dirilis 9 September 2025, yang menambahkan 4.803 karakter baru dan membawa total terkode menjadi 159.801.
Saya menarik data properti Unicode 17.0 dan menghitungnya sendiri. 4.174 titik kode membawa Default_Ignorable_Code_Point, tetapi hanya 405 di antaranya yang merupakan karakter yang ditetapkan. 3.769 lainnya adalah slot cadangan yang belum digunakan. Dari 405 itu, 256 adalah pemilih variasi dan 97 berada di blok Tags, sehingga tersisa 52 yang muncul dalam tulisan biasa.
Kategori Cf memegang 170 karakter dalam versi yang sama. Itulah sebabnya angka pemasaran bulat seperti "104 karakter tersembunyi" tidak memberi tahu apa pun sendirian. Tanpa versi Unicode yang dicetak di sebelahnya, angka itu tidak dapat dicek terhadap apa pun.
Mengapa Watermark Pemilihan Token Bertahan dari Pembersihan Karakter?
Pemilihan token yang juga dikenal sebagai watermark statistik tersimpan dalam kata mana yang dipilih model, sehingga menghapus karakter tak terlihat tidak membersihkan tanda statistik.
Tidak ada pembersih watermark teks di internet yang dapat menghapus watermark pemilihan token atau statistik, karena algoritma yang dipakai alat AI bersifat proprietary.
Apakah ChatGPT Memasang Watermark di Teksnya?
OpenAI mengatakan tidak. Pada 20 April 2025 Rumidocs melaporkan bahwa balasan dari GPT o3 dan o4 mini berisi U+202F, yaitu NARROW NO-BREAK SPACE. OpenAI menjawab dua hari kemudian. Karakter itu adalah "a quirk of large-scale reinforcement learning" dan bukan watermark. Rumidocs memperbarui tulisan pada 23 April 2025 dengan menyatakan karakter khusus itu berhenti muncul.
OpenAI memang membangun metode watermarking teks pada 2024 dan tidak pernah merilisnya. Artikel bantuan provenance saat ini mencantumkan apa yang membawa sinyal hari ini: gambar mendapat C2PA Content Credentials dan SynthID, audio mendapat SynthID, dan teks tidak mendapat keduanya. Halaman yang sama menyatakan bahwa "our goal is to expand provenance signals to all modalities including text", yang merupakan rencana bukan produk.
Jawaban jujurnya singkat. ChatGPT tidak memberi watermark pada teksnya, dan karakter yang ditemukan orang pada 2025 adalah bug yang sudah diperbaiki.
Jenis Karakter Tak Terlihat yang Ditemukan di Keluaran ChatGPT dan Claude
Karakter yang ditemukan pembersih ini masuk dalam lima kelompok: karakter lebar nol, spasi tidak biasa, karakter kontrol, tanda baca mirip, dan karakter tag atau penggunaan pribadi.
| Kelompok | Contoh | Apa fungsinya | Prasetel Standar |
|---|---|---|---|
| Karakter lebar nol | U+200B, U+200C, U+200D, U+2060, U+FEFF | Tidak mengambil lebar, tetap tersimpan dalam file | Menghapus U+200B, U+2060, U+FEFF dan mempertahankan dua penyambung |
| Spasi tidak biasa | U+00A0, U+2009, U+202F, U+3000 | Terlihat seperti spasi, diurutkan dan dicari sebagai karakter berbeda | Mengonversi menjadi spasi normal |
| Karakter kontrol | Rentang C0 dan C1, kontrol dua arah | Mengarahkan rendering atau merusak parser, tidak pernah dicetak | Menghapus semua di luar tab dan newline |
| Tanda baca mirip | Kutip lengkung, en dan em dash, U+00AD | Tercetak, tetapi bukan sebagai karakter yang Anda ketik | Dibiarkan |
| Tag dan penggunaan pribadi | U+E0000 hingga U+E007F, area penggunaan pribadi | Membawa teks yang dapat dibaca tetapi tidak dilihat manusia | Menghapus |
Berikut contoh berjalan yang saya pakai untuk setiap pengukuran di halaman ini. Kalimat "The meeting starts at 9:30 am on 12 May." berisi 40 karakter dan 40 byte saat diketik langsung di editor teks polos. Setelah satu perjalanan lewat pengolah kata dan kembali, keluar sebagai 42 karakter dan 49 byte. Di dalamnya ada byte order mark di depan, spasi lebar-nol setelah "am", dan dua spasi biasa yang diam-diam diganti U+202F dan U+00A0. Sembilan byte ekstra. Tidak ada yang terlihat berubah.
The meeting starts at 9:30 am on 12 May.Karakter Lebar Nol: U+200B, U+200C, U+200D, U+2060 dan U+FEFF
Karakter lebar nol tidak mengambil ruang di layar tetapi tetap ada dalam file, itulah sebabnya teks yang ditempel bisa membawa tanda yang tidak terlihat siapa pun.
| Titik kode | Nama resmi Unicode | Fungsi sungguhan |
|---|---|---|
| U+200B | ZERO WIDTH SPACE | Menandai peluang pemisahan baris, kebanyakan disisipkan editor web |
| U+200C | ZERO WIDTH NON-JOINER | Menjaga huruf terpisah dalam kata Persia dan Arab |
| U+200D | ZERO WIDTH JOINER | Menyambungkan emoji menjadi satu gambar dan membentuk konjungsi dalam aksara India |
| U+2060 | WORD JOINER | Mencegah pemisahan baris di titik itu |
| U+FEFF | ZERO WIDTH NO-BREAK SPACE | Byte order mark, biasanya ditinggalkan editor teks, bukan AI |
Dua dari lima itu adalah karakter yang berfungsi, bukan sampah. U+200C dan U+200D membawa makna dalam bahasa sungguhan, itulah alasan prasetel Standar membiarkannya di tempatnya.
Spasi Tidak Biasa: U+00A0, U+2009, U+202F dan U+3000
Spasi tidak biasa tampak seperti spasi biasa tetapi membawa titik kode berbeda, yang merusak pencarian, pengurutan, dan kode.
Unicode 17.0 mendefinisikan 17 karakter dalam kategori Zs, pemisah spasi, dan hanya satu di antaranya yang merupakan spasi di keyboard Anda. Saya mencantumkan ke-17 dari basis data karakter beserta lebar byte UTF-8-nya, karena lebar byte itulah yang membuatnya mahal.
| Titik kode | Nama resmi Unicode | Byte UTF-8 |
|---|---|---|
| U+0020 | SPACE | 1 |
| U+00A0 | NO-BREAK SPACE | 2 |
| U+1680 | OGHAM SPACE MARK | 3 |
| U+2000 to U+200A | EN QUAD hingga HAIR SPACE, 11 karakter | 3 masing-masing |
| U+202F | NARROW NO-BREAK SPACE | 3 |
| U+205F | MEDIUM MATHEMATICAL SPACE | 3 |
| U+3000 | IDEOGRAPHIC SPACE | 3 |
Satu U+202F menghabiskan tiga byte sedangkan spasi menghabiskan satu, dan pencarian "9:30 am" tidak akan cocok dengan "9:30 am" ketika celahnya U+202F. Ketidakcocokan itulah alasan spasi dinormalkan bahkan di prasetel Standar.
9:30 am
9:30 amAnda dapat salin-tempel contoh teks ke kotak input alat di atas untuk melihat hasilnya.
Tanda Pisah, Kutip Pintar, dan Soft Hyphen yang Disisipkan Editor
Kutip lengkung, tanda pisah panjang, dan soft hyphen U+00AD biasanya berasal dari pengaturan koreksi otomatis pengolah kata, bukan dari model bahasa.
Unicode 17.0 memberi properti Dash kepada 31 karakter, dari U+002D polos di keyboard Anda hingga U+2014 EM DASH dan U+2E3A TWO-EM DASH. Hanya satu yang merupakan tekan keyboard. Sisanya datang saat perangkat lunak memutuskan apa yang Anda maksudkan. U+00AD adalah yang aneh, karena tercetak sebagai tanda hubung hanya saat baris terpecah di situ dan tetap tak terlihat di tempat lain.
Tanda pisah adalah pertanyaan yang membawa sebagian besar orang ke halaman seperti ini, dan jawaban singkatnya adalah bahwa itu tidak membuktikan apa pun. Argumen lengkap ada lebih jauh di bawah pada bagian tentang em dash.
Karakter Tag dan Penggunaan Pribadi yang Menyembunyikan Instruksi di Dalam Teks
Karakter di blok Unicode Tags, U+E0000 hingga U+E007F, dapat membawa kalimat lengkap yang tidak pernah dilihat pembaca manusia. Itulah cara penyerang menyelundupkan instruksi tersembunyi ke dalam teks yang nanti dibaca asisten AI.
AWS Security Blog membahas penyelundupan karakter Unicode pada 30 September 2025. Ia menggambarkan karakter tag yang "Initially designed as invisible markers for indicating language within text" dan telah "emerged as a potential vector for prompt injection". Catatan penelitian Cloud Security Alliance bertanggal 10 March 2026 menelusuri tipuan yang sama ke dalam skill agen AI, deskripsi alat, dan server MCP. Karya itu menyebut blok Tags bersama U+200B, U+200C, U+200D dan U+FEFF.
Saya membangun satu untuk melihat ukurannya. Kalimat terlihat "Great work on the report." berisi 25 karakter dan 25 byte. Saya menambahkan instruksi 42 karakter yang dikodekan dalam karakter tag. File tumbuh menjadi 67 karakter dan 193 byte. Di layar tetap terbaca lima kata dan titik, dan skrip menarik kembali instruksi dari salinan itu utuh. Setiap karakter tag menghabiskan empat byte dan nol piksel.
Great work on the report.Ini alasan terkuat untuk membersihkan teks yang tidak ada hubungannya dengan deteksi AI. Tempel seblok salinan dari halaman web ke asisten chat dan Anda mungkin menyerahkan instruksi yang tidak pernah Anda ketik.
Penghapusan Karakter Tak Terlihat di Browser Anda: Alur Pindai dan Bersihkan
Pembersih ini memindai teks Anda saat Anda menempelkannya, mencantumkan setiap temuan beserta nama resmi Unicode dan posisinya, dan tidak mengubah apa pun sampai Anda menekan Bersihkan teks.
Urutannya ada empat langkah:
- Tempel teks Anda atau jatuhkan file .txt atau .md.
- Tinjau daftar temuan, yang menamai setiap karakter dan di mana letaknya.
- Pilih prasetel, atau pertahankan temuan individu yang ingin Anda lindungi.
- Bersihkan, lalu salin hasilnya atau unduh.
Pembersih ini tidak menulis ulang, memparafrase, atau memanusiakan satu kata pun dari teks Anda.
Perbandingan Prasetel Standar, Lanjutan, dan Ketat
Standar menghapus karakter yang menimbulkan masalah dalam tulisan biasa, Lanjutan memperluas jangkauan, dan Ketat menghapus paling banyak.
| Kelompok karakter | Standar | Lanjutan | Ketat |
|---|---|---|---|
| Spasi lebar-nol, penyambung kata, byte order mark | Dihapus | Dihapus | Dihapus |
| Kontrol dua arah dan kontrol C0/C1 | Dihapus | Dihapus | Dihapus |
| Blok tag dan karakter penggunaan pribadi | Dihapus | Dihapus | Dihapus |
| Tanda hubung lunak U+00AD | Dihapus | Dihapus | Dihapus |
| Spasi tidak biasa dalam kategori Zs | Dikonversi ke U+0020 | Dikonversi ke U+0020 | Dikonversi ke U+0020 |
| Penyambung U+200C dan U+200D | Dipertahankan | Dihapus di luar urutan emoji | Dihapus di mana-mana |
| Pemilih variasi | Dipertahankan | Dihapus di luar urutan emoji | Dihapus di mana-mana |
| Kutip lengkung dan tanda pisah panjang | Dipertahankan | Dipertahankan | Dikonversi ke kutip lurus dan tanda pisah polos |
Tiga filter sekali ketuk berada di samping prasetel: hapus yang tak terlihat, hapus tanda pisah dan hubung, dan hapus emoji. Menerbitkan aturan ini disengaja. Setiap alat pesaing menyembunyikan set aturannya di balik satu tombol, sehingga Anda tidak tahu apa yang diambil dari teks Anda sampai sesuatu rusak.
Bagaimana Perlindungan Kode Markdown Menjaga Blok Kode Tetap Utuh?
Dengan mode Markdown dan perlindungan diaktifkan, pembersih melewati kode berpagar dan sebaris, sehingga cuplikan yang membutuhkan karakter persis tetap memilikinya.
Kode adalah satu tempat di mana karakter yang Anda sebut sampah dalam prosa justru menanggung beban. Ekspresi reguler atau string uji bisa bergantung pada byte order mark tepat di tempatnya.
Apakah Teks Anda Meninggalkan Perangkat?
Tidak. Pemindaian dan pembersihan keduanya berjalan di browser Anda, dan halaman tidak pernah mengunggah atau menyimpan teks Anda.
Separuh jujur kedua termasuk dalam napas yang sama. Halaman ini gratis, jadi masih bisa menampilkan iklan dan memakai analitik situs. Laporan JSON opsional mencatat apa yang berubah. Ia tidak membawa teks Anda sama sekali.
Batas Teks dan File: 20.000 Kata dan 1 MB
Pembersih menerima hingga 20.000 kata teks yang ditempel, atau satu file UTF-8 hingga 1 MB dalam format .txt atau .md.
Selain itu di luar cakupan: bukan HTML, DOCX, PDF, JSON, atau CSV, dan tempel datang sebagai teks polos saja. JavaScript diperlukan. Tidak ada akun dan tidak ada pembayaran. Antarmuka tersedia dalam 26 bahasa. Nama resmi Unicode tetap dalam bahasa Inggris di semuanya, karena nama karakter yang diterjemahkan bukan lagi nama yang bisa Anda kutip.
Untuk foto alih-alih teks, Anda dapat hapus info ai dari gambar atau edit metadata gambar.
Penandaan Teks AI per Vendor: Perbandingan ChatGPT, Claude, Gemini, dan Grok
Hanya sebagian vendor AI yang menandai keluaran teksnya, dan setiap vendor yang melakukannya memakai pilihan kata alih-alih karakter tersembunyi.
| Penyedia | Menandai teks | Metode | Ditemukan oleh pembersih ini | Sumber dan tanggal |
|---|---|---|---|---|
| Anthropic, Claude | Ya | Watermark pemilihan token, versi SynthID Text | Tidak | Anthropic, pengumuman 11 August 2026, catatan teknis 14 August 2026, diperbarui 1 September 2026 |
| Google, Gemini | Ya | SynthID Text, modulasi probabilitas token | Tidak | Google DeepMind, 14 May 2024, open sourced kemudian tahun itu |
| OpenAI, ChatGPT | Tidak ada watermark teks yang dikonfirmasi | Tidak ada di produksi untuk teks. Gambar membawa C2PA dan SynthID, audio membawa SynthID | Tidak berlaku | Artikel bantuan provenance OpenAI, berlaku per 2 September 2026 |
| xAI, Grok | Tidak ada komitmen yang dipublikasikan | Tidak dinyatakan | Tidak berlaku | xAI tidak menandatangani Code of Practice transparansi Komisi, dilaporkan 12 August 2026 |
Anthropic mengatakan model yang diluncurkan pada atau setelah 2 August 2026 membawa tanda sejak peluncuran. Perusahaan sedang menambahkan penandaan ke model yang dirilis sebelum tanggal itu. Deteksi watermark teks bukan pemeriksa publik. Anthropic menyatakan bahwa deteksi "is currently in private preview, available to eligible organizations as required under EU law". Daftar yang memenuhi syarat mencakup regulator, penegak hukum, media, pemeriksa fakta, peneliti, badan pendidikan, dan kelompok masyarakat sipil UE. Claude Content Checker gratis yang juga ditawarkan Anthropic membaca C2PA Content Credentials pada file yang dihasilkan, yang berbeda dari watermark teks.
xAI tidak menandatangani Code of Practice tidak mengecualikan Grok dari AI Act itu sendiri. Kode sukarela adalah jalur kepatuhan, bukan pengganti hukum.
Bagaimana Watermarking Teks Claude Bekerja?
Claude memilih di antara kata yang sama baiknya, dan kunci rahasia memutuskan mana yang diambil. Tandanya adalah urutan pilihan, bukan karakter apa pun dalam teks.
Anthropic menggambarkan mekanismenya dengan jelas. "Instead of using an arbitrary random number generator to pick the next word, watermarking uses the key and a few words that come before to settle what word the model should pick." Perusahaan juga menyatakan bahwa watermark teks Claude "is a version of the SynthID-Text approach published by Google DeepMind in a Nature paper in 2024".
Tentang ketahanan Anthropic spesifik. "Light editing probably won't remove the watermark completely", dan penulisan ulang lengkap di mana setiap kata diganti akan menghapusnya.
Apa yang Ditandai SynthID Text di Keluaran Gemini?
SynthID Text menyematkan polanya dalam probabilitas token saat Gemini menulis. Google DeepMind mengumumkan watermarking teks SynthID untuk aplikasi dan pengalaman web Gemini pada 14 May 2024. Metodenya bekerja "by introducing additional information in the token distribution at the point of generation by modulating the likelihood of tokens being generated". DeepMind open sourced metode itu kemudian tahun itu melalui Responsible Generative AI Toolkit.
Batasan yang dipublikasikan sama pentingnya dengan metode. SynthID Text bekerja terbaik pada jawaban yang lebih panjang dan bervariasi. Berkinerja buruk pada balasan faktual pendek, di mana model hampir tidak punya kebebasan pilihan kata. Keyakinan turun lagi ketika teks ditulis ulang secara menyeluruh atau diterjemahkan.
Temuan Karakter Tersembunyi dan Kepenulisan AI: Mengapa Satu Tidak Pernah Membuktikan yang Lain?
Karakter tersembunyi adalah bukti bahwa sesuatu memproses teks Anda, bukan bukti bahwa AI menulisnya.
Setiap karakter tak terlihat punya penjelasan biasa yang sudah ada sebelum tulisan AI. Pengolah kata, sistem manajemen konten, dan pengekspor PDF telah menyisipkannya selama puluhan tahun. Sebuah temuan memberi tahu Anda bahwa teks sudah melalui perangkat lunak, yang benar bagi hampir setiap kalimat yang dipublikasikan siapa pun.
Dari Mana Karakter Tak Terlihat Berasal Selain AI?
Pengolah kata, editor web, ekspor PDF, alat terjemahan, aplikasi chat, dan salin-tempel biasa semuanya menyisipkan karakter tak terlihat sendiri.
| Sumber | Karakter yang biasa ditambahkan | Mengapa |
|---|---|---|
| Pengolah kata | U+00A0, U+2019, U+2014, U+00AD | Koreksi otomatis dan hyphenation otomatis |
| Editor web dan CMS | U+200B, U+FEFF | Petunjuk pemisahan baris dan penanda penyandian file |
| Ekspor PDF | U+2009, U+202F, U+00A0 | Mempertahankan spasi typeset saat teks disalin kembali keluar |
| Alat terjemahan dan lokalisasi | U+200C, U+200D, U+061C | Rendering yang benar untuk aksara Arab, Persia, dan India |
| Aplikasi chat dan pesan | U+200D, U+FE0F | Urutan emoji dan presentasi teks atau emoji |
| Salin dan tempel antaraplikasi | U+FEFF, spasi Zs campuran | Konversi penyandian di clipboard |
Kalimat uji 40 byte saya sendiri mengumpulkan empat temuan tanpa pernah bertemu model bahasa. Itulah seluruh argumen dalam satu pengukuran.
Mengapa Em Dash Bukan Watermark
Em dash adalah tanda baca normal yang dipakai penulis, editor, dan koreksi otomatis selama berabad-abad, sehingga tidak membawa sinyal tentang siapa yang menulis kalimat.
Perbaikan 2025 menutupnya. OpenAI mengatakan pada 14 November 2025 bahwa ChatGPT akhirnya akan mematuhi instruksi kustom yang menyuruhnya berhenti memakai em dash. Sam Altman mengatakannya dengan jelas hari itu: "If you tell ChatGPT not to use em-dashes in your custom instructions, it finally does what it's supposed to do". Kebiasaan yang bisa dimatikan pengguna di pengaturan personalisasi tidak pernah menjadi tanda. Itu pola gaya yang dipetik dalam pelatihan, dan perbaikannya adalah preferensi.
Pembersih ini tetap menawarkan penghapusan tanda pisah, dan alasannya jujur. Itu filter gaya untuk orang yang ingin kutip lurus dan tanda pisah polos dalam salinan mereka. Bukan filter watermark, dan tidak akan mengubah apa yang dikatakan detektor mana pun tentang teks Anda.
Ketika Pembersihan Merusak Teks: Aksara Persia, Arab, India, dan Emoji
Menghapus karakter lebar nol dapat merusak teks yang benar, karena beberapa aksara membutuhkannya untuk mengeja kata dengan tepat.
Saya menjalankan empat kasus yang paling sering rusak dan mencatat tepat apa yang terjadi. Kata Persia میخواهم berisi delapan karakter, dan U+200C di tengah menjaga kedua bagian agar tidak bergabung. Hapus dan Anda mendapat میخواهم, tujuh karakter dan bentuk tulisan berbeda. Dalam Devanagari, क्ष memegang U+200D yang membentuk konjungsi yang benar, dan menghapusnya mengubah bentuk di layar. Emoji keluarga 👨👩👧👦 berisi tujuh titik kode, empat gambar yang disatukan tiga penyambung U+200D. Hapus penyambungnya dan pecah menjadi 👨👩👧👦, empat orang terpisah. Hati merah ❤️ membawa U+FE0F agar dirender sebagai emoji, dan tanpa itu titik kode yang sama mundur ke simbol teks, ❤.
Itulah alasan alat menampilkan temuan sebelum membersihkan apa pun, mengapa temuan individu dapat dipertahankan, dan mengapa Ketat bukan default. Editor yang bekerja dalam satu bahasa melihat hasil bersih. Editor yang bekerja dalam enam melihat laporan bug.
Putusan Akhir tentang Pembersihan Watermark Teks AI
Membersihkan karakter tak terlihat layak dilakukan untuk teks yang bersih, portabel, dan aman.
Dua alasan membenarkan menjalankan alat ini. Pertama, karakter tersembunyi merusak banyak hal secara diam-diam—dalam hasil pencarian, pencarian spreadsheet, kode, dan URL. Kedua, karakter tag dapat membawa instruksi ke asisten AI yang tidak diketik siapa pun dan tidak terlihat siapa pun. Itu menjadikan pembersihan kebiasaan keamanan alih-alih kosmetik.
Siapa pun yang berharap mengalahkan watermark vendor sedang membersihkan lapisan yang salah. Claude dan Gemini menandai teks dalam pilihan kata, OpenAI menandai gambar dan audio tetapi bukan teks, dan tidak ada jumlah penghapusan karakter yang mencapai salah satunya. Satu cara mengalahkan watermarking statistik ini adalah menerjemahkan teks ke beberapa bahasa berbeda lalu menerjemahkannya kembali ke aslinya.
Tempel satu halaman teks Anda sendiri ke kotak input di atas dan baca temuannya untuk memahami teks lebih baik, atau cukup salin keluarannya.
Sekian untuk saat ini. Terima kasih sudah membaca sejauh ini.