Pengkodean adalah pemetaan antara byte dan karakter dari set karakter, jadi akan sangat membantu untuk mendiskusikan dan memahami perbedaan antara byte dan karakter .
Pikirkan byte sebagai angka antara 0 dan 255, sedangkan karakter adalah hal-hal abstrak seperti "a", "1", "$" dan "Ä". Set semua karakter yang tersedia disebut set karakter .
Setiap karakter memiliki urutan satu atau lebih byte yang digunakan untuk merepresentasikannya; Namun, jumlah dan nilai byte yang tepat tergantung pada pengkodean yang digunakan dan ada banyak pengkodean yang berbeda.
Sebagian besar pengkodean didasarkan pada set karakter lama dan pengkodean yang disebut ASCII yang merupakan byte tunggal per karakter (sebenarnya, hanya 7 bit) dan berisi 128 karakter termasuk banyak karakter umum yang digunakan dalam bahasa Inggris AS.
Misalnya, berikut adalah 6 karakter dalam set karakter ASCII yang diwakili oleh nilai 60 hingga 65.
Extract of ASCII Table 60-65
╔══════╦══════════════╗
║ Byte ║ Character ║
╠══════╬══════════════║
║ 60 ║ < ║
║ 61 ║ = ║
║ 62 ║ > ║
║ 63 ║ ? ║
║ 64 ║ @ ║
║ 65 ║ A ║
╚══════╩══════════════╝
Dalam set ASCII lengkap, nilai terendah yang digunakan adalah nol dan tertinggi 127 (keduanya adalah karakter kontrol tersembunyi).
Namun, begitu Anda mulai membutuhkan lebih banyak karakter daripada yang disediakan ASCII dasar (misalnya, huruf dengan aksen, simbol mata uang, simbol grafik, dll.), ASCII tidak cocok dan Anda membutuhkan sesuatu yang lebih luas. Anda memerlukan lebih banyak karakter (kumpulan karakter yang berbeda) dan Anda memerlukan pengodean yang berbeda karena 128 karakter tidak cukup untuk memuat semua karakter. Beberapa pengkodean menawarkan satu byte (256 karakter) atau hingga enam byte.
Seiring waktu, banyak penyandian telah dibuat. Di dunia Windows, ada CP1252, atau ISO-8859-1, sedangkan pengguna Linux cenderung menyukai UTF-8. Java menggunakan UTF-16 secara asli.
Satu urutan nilai byte untuk karakter dalam satu pengkodean mungkin berarti karakter yang sama sekali berbeda di pengkodean lain, atau bahkan mungkin tidak valid.
Misalnya, dalam ISO 8859-1 , â diwakili oleh satu byte dari nilai 226
, sedangkan di UTF-8 itu adalah dua byte: 195, 162
. Namun, dalam ISO 8859-1 , 195, 162
akan ada dua karakter, Ã, ¢ .
Ketika komputer menyimpan data tentang karakter secara internal atau mengirimkannya ke sistem lain, mereka menyimpan atau mengirim byte. Bayangkan sebuah sistem membuka file atau menerima pesan melihat byte195, 162
. Bagaimana cara mengetahui karakter apa ini?
Agar sistem dapat mengartikan byte tersebut sebagai karakter aktual (dan karenanya menampilkannya atau mengonversinya ke pengkodean lain), perlu mengetahui pengkodean yang digunakan. Itulah sebabnya penyandian muncul dalam header XML atau dapat ditentukan dalam editor teks. Ini memberitahu sistem pemetaan antara byte dan karakter.