Panduan 02

Cara menghitung byte: UTF-8, EUC-KR, dan CP949

Mengapa satu karakter Korea kadang 2 byte dan kadang 3 byte. Cara menghitung byte di tiap pengodean karakter, serta hal yang perlu diperhatikan pada pesan singkat dan basis data.

Karakter dan byte itu berbeda

Jumlah karakter adalah banyaknya huruf yang dilihat manusia, sedangkan byte adalah ukuran ruang yang dipakai saat teks disimpan di komputer. Karakter yang sama bisa memakai jumlah byte berbeda tergantung pengodean karakter (aturan yang mengubah karakter menjadi angka) yang digunakan. Huruf Latin dan angka berukuran 1 byte di hampir semua pengodean, tetapi karakter Korea bisa 2 byte atau 3 byte tergantung pengodeannya.

UTF-8: standar masa kini

UTF-8 adalah pengodean yang dipakai halaman web dan sebagian besar perangkat lunak modern. Pengodean ini memakai 1–4 byte tergantung besar nomor Unicode (code point) (RFC 3629).

Rentang code pointByteContoh
U+0000 – U+007F1Huruf Latin dasar, angka, simbol dasar
U+0080 – U+07FF2é, ñ, huruf Yunani, Sirilik, dan Arab
U+0800 – U+FFFF3Hangul, aksara Tionghoa, kana
U+10000 – U+10FFFF4Sebagian besar emoji, aksara kuno

Semua suku kata Hangul prakomposisi (가 sampai 힣, U+AC00 sampai U+D7A3) berada di rentang ketiga, jadi dalam UTF-8 setiap karakter Korea berukuran 3 byte. Misalnya, ‘안녕하세요’ (halo) terdiri dari 5 karakter dan 15 byte.

UTF-16

UTF-16, yang dipakai secara internal oleh JavaScript, Java, dan Windows, menyimpan sebagian besar karakter dalam 2 byte, dan karakter di U+10000 ke atas seperti emoji dalam 4 byte (pasangan surrogate). Inilah sebabnya panjang string JavaScript menghitung satu emoji sebagai 2.

EUC-KR: pengodean prakomposisi Korea

EUC-KR adalah pengodean berbasis standar industri Korea KS X 1001. Huruf Latin dan angka berukuran 1 byte, sedangkan karakter yang termasuk dalam KS X 1001 berukuran 2 byte. KS X 1001 memuat 2.350 suku kata Hangul yang sering dipakai, 4.888 aksara Tionghoa (hanja), kana, huruf Yunani dan Sirilik, serta berbagai simbol.

Masalahnya, dari 11.172 suku kata Hangul modern hanya 2.350 yang termasuk. Karakter yang tidak ada dalam daftar, seperti ‘똠’, ‘햏’, dan ‘뷁’ (suku kata yang jarang tetapi sah), tidak dapat dinyatakan dengan dua byte EUC-KR standar. Lampiran standar tersebut mendefinisikan cara penggabungan 8 byte, tetapi hanya sedikit program yang mendukungnya, sehingga karakter ini biasanya berubah menjadi ‘?’ atau menimbulkan galat.

CP949: prakomposisi yang diperluas

CP949 (‘Unified Hangul Code’ dari Microsoft) memperluas EUC-KR sehingga seluruh 11.172 suku kata Hangul modern muat dalam 2 byte. Karena merupakan code page bawaan Windows untuk bahasa Korea, pengodean ini banyak dipakai di dokumen dan sistem Korea yang lebih lama. Kebiasaan ‘huruf Latin 1 byte, Hangul 2 byte’ sebagian besar berasal dari pengodean ini.

Kapan byte menjadi penting

Cara alat ini menghitung

Byte UTF-8 dihitung secara tepat dari code point setiap karakter. Untuk EUC-KR dan CP949, alat ini mencocokkan setiap karakter dengan tabel karakter sebenarnya dari pengodean tersebut untuk memeriksa apakah karakter itu bisa dinyatakan dalam 2 byte. Karakter yang tidak dapat dinyatakan (emoji, suku kata Hangul yang tidak ada di tabel, dan sebagainya) biasanya diganti dengan satu byte ‘?’, sehingga dihitung 1 byte, dan jumlah karakter semacam itu ditampilkan terpisah. Di mode esai, memilih ‘Byte (Hangul = 2)’ sebagai dasar hitung akan menghitung dengan cara CP949.

Tanggal acuan: 2026-09-23

Buka penghitung karakter →