Apa Itu Alat Ini?
Untuk teks ASCII biasa (huruf Inggris, angka, tanda baca dasar), jumlah karakter dan jumlah byte adalah angka yang sama — setiap karakter menggunakan tepat satu byte dalam UTF-8. Setelah teks mencakup huruf beraksen, karakter Cina/Jepang/Korea, Sirilik, Arab, emoji, atau kebanyakan karakter non-ASCII lainnya, hal itu tidak lagi berlaku: satu karakter bisa menggunakan 2, 3, atau 4 byte dalam UTF-8, dan 2 atau 4 byte dalam UTF-16.
Hal ini penting kapan pun sebuah sistem memiliki batas byte, bukan batas karakter — pesan SMS, ukuran kolom basis data, batas payload API, dan beberapa platform sosial semuanya mengukur dalam byte, bukan karakter, sehingga potongan teks yang sama bisa diam-diam melampaui batas tergantung bahasa atau simbol apa yang dikandungnya.
Mengapa Menggunakannya?
- Kolom bio gaya Twitter/X membatasi berdasarkan byte, bukan karakter, dan namamu ada emoji-nya — ketik di sini buat lihat biaya byte sebenarnya sebelum formulirnya diam-diam memotongnya.
- Kolom database aplikasimu didefinisikan sebagai VARCHAR(255) dalam byte, dan judul produk berbahasa Jepang atau Arab yang "kelihatan pendek" terus ditolak — tempel di sini buat lihat kenapa itu sebenarnya makan 3x lipat byte dibanding judul berhuruf Latin.
- Kamu lagi memperkirakan berapa segmen SMS yang bakal dipakai pesan marketing multibahasa — karena operator nagih dan membagi berdasarkan ukuran byte, cek jumlah byte UTF-8/UTF-16 di sini lebih pasti daripada nebak dan kena tagihan membengkak.
- API balikin error "payload too large" yang misterius di field JSON dengan validator panjang byte ketat, padahal string-nya kelihatan biasa aja di editor — ini nunjukin persis berapa byte yang sebenarnya dipakai string itu.
- Kamu lagi bandingin kenapa kalimat yang sama makan lebih banyak storage di satu bahasa dibanding bahasa lain — ketik tiap versi dan lihat jumlah byte UTF-8 melonjak buat teks CJK atau Arab dibanding versi ASCII biasa.
- Kamu perlu double check apakah emoji di username dihitung sebagai satu karakter atau dua oleh aturan validasi yang rewel — alat ini menghitungnya persis seperti yang dilihat orang, jadi kamu bisa tahu apakah sistem lain salah hitung.
Cara Menggunakan
- Ketik atau tempel teks ke dalam kotak.
- Baca jumlah karakter, jumlah byte UTF-8, dan jumlah byte UTF-16 di bawahnya — semuanya diperbarui saat Anda mengetik.
Contoh
Input
Hello, 世界! 🌍Output
12 karakter, 19 byte UTF-8, 26 byte UTF-16Bagian ASCII ("Hello, " dan "! ") menggunakan 1 byte per karakter dalam UTF-8. Setiap karakter Cina menggunakan 3 byte, dan emoji menggunakan 4 byte — itulah sebabnya jumlah byte jauh lebih tinggi daripada jumlah karakter.
Penggunaan umum
- Memeriksa apakah deskripsi produk multibahasa akan muat dalam kolom basis data yang ditentukan oleh panjang byte, bukan jumlah karakter.
- Memperkirakan penggunaan segmen SMS, karena SMS ditagih dan dibagi berdasarkan ukuran byte, dan teks non-Latin menggunakan batas per segmen yang berbeda.
- Memverifikasi bahwa payload API atau kolom formulir tetap di bawah batas ukuran berbasis byte sebelum dikirim.
- Memahami mengapa sebuah string yang "terlihat pendek" ditolak oleh sistem dengan pemeriksaan panjang berbasis byte.
Ukuran byte UTF-8 berdasarkan jenis karakter
Tabel di bawah menunjukkan biaya byte UTF-8 khas berdasarkan kategori karakter — berguna buat memperkirakan seberapa berat teks multibahasa sebenarnya sebelum kamu tempel semuanya.
| Jenis karakter | Contoh | Byte UTF-8 | Byte UTF-16 |
|---|---|---|---|
| Huruf/angka ASCII | A, 7 | 1 | 2 |
| Latin beraksen (é, ñ, ü) | é | 2 | 2 |
| Sirilik / Yunani / Ibrani / Arab | д, α, א | 2 | 2 |
| CJK (Cina, Jepang, Korea) | 世 | 3 | 2 |
| Kebanyakan emoji (di luar BMP) | 🌍 | 4 | 4 |
Pertanyaan yang Sering Diajukan
Mengapa jumlah karakter dan jumlah byte tidak cocok?
Teks Unicode disimpan sebagai byte, dan berapa banyak byte yang dibutuhkan setiap karakter tergantung pada pengkodean dan karakter itu sendiri. Dalam UTF-8, karakter ASCII menggunakan 1 byte, sebagian besar huruf Latin beraksen serta huruf Sirilik/Yunani/Ibrani/Arab menggunakan 2 byte, sebagian besar karakter CJK menggunakan 3 byte, dan emoji biasanya menggunakan 4 byte. Jumlah karakter hanya menghitung simbol, tanpa memperhatikan bagaimana simbol tersebut disimpan.
Jumlah byte mana yang harus saya gunakan untuk kolom dengan batas byte?
Gunakan pengkodean yang sebenarnya digunakan sistem untuk menyimpan atau mengirim teks — sebagian besar API web, basis data, dan file modern menggunakan UTF-8, sehingga jumlah byte UTF-8 biasanya yang relevan. Beberapa sistem lama (seperti penanganan string internal Windows/Java) menggunakan UTF-16.
Apakah alat ini menghitung emoji dengan benar?
Ya. Banyak emoji disimpan secara internal sebagai sepasang unit kode "surrogate" UTF-16, yang oleh metode penghitungan naif dihitung sebagai 2 karakter. Alat ini menghitung code point Unicode dengan benar, sehingga satu emoji dihitung sebagai 1 karakter, sesuai dengan berapa banyak karakter yang sebenarnya dilihat orang.
Apakah ini sama dengan alat Penghitung Kata?
Tidak — Penghitung Kata berfokus pada jumlah kata dan kalimat untuk keperluan menulis. Alat ini secara khusus membahas ukuran byte dibandingkan jumlah karakter, yang penting untuk batasan teknis, bukan persyaratan jumlah kata.
Apakah teks saya diunggah ke suatu tempat?
Tidak. Penghitungan dilakukan secara lokal di peramban Anda menggunakan pengkode teks bawaan JavaScript; tidak ada yang dikirim ke server.
Kenapa karakter yang sama bisa makan jumlah byte berbeda di UTF-8 dibanding UTF-16?
Kedua encoding pakai aturan yang sama sekali berbeda buat memetakan code point ke byte. UTF-8 pakai 1 sampai 4 byte tergantung karakternya, dioptimasi supaya ASCII tetap 1 byte. UTF-16 pakai 2 byte untuk sebagian besar karakter dan 4 byte hanya untuk karakter di luar Basic Multilingual Plane (seperti kebanyakan emoji) — jadi karakter Cina 3 byte di UTF-8 tapi cuma 2 byte di UTF-16, sementara emoji 4 byte di keduanya.
Apakah emoji skin-tone atau family (gabungan beberapa karakter) dihitung dengan benar?
Alat ini menghitung code point Unicode, jadi emoji gabungan yang dibangun dari beberapa code point yang disambung dengan zero-width joiner (seperti emoji keluarga) dihitung sebagai beberapa karakter, bukan satu — sesuai cara teks itu sebenarnya di-encode, meskipun tampil sebagai satu glyph.
Apa bedanya jumlah byte UTF-8 dengan jumlah karakter untuk teks Inggris biasa?
Untuk teks Inggris standar yang cuma pakai huruf ASCII, angka, spasi, dan tanda baca dasar, keduanya identik — tiap karakter persis 1 byte di UTF-8. Selisihnya baru muncul begitu ada huruf beraksen, simbol, atau aksara non-Latin.
Bisakah saya pakai ini buat cek batas karakter Twitter/X atau SMS secara persis?
Alat ini memberimu jumlah karakter dan byte mentah, yang jadi dasar batas-batas itu, tapi platform kadang punya aturan pembobotan sendiri (misalnya sebagian menghitung emoji atau URL tertentu sebagai jumlah karakter tetap terlepas dari panjang aslinya) — cek aturan spesifik platformnya buat kasus khusus, dan pakai alat ini buat paham biaya byte yang mendasarinya.