Lompat ke konten utama
←

Berkas, Format, dan Data yang Rapi

Pelajaran 2 dari 16

Teks dan encoding · Pelajaran 2

UTF-8 dan mojibake

Setelah pelajaran ini

Pengguna dapat mengenali teks yang salah baca dan mengembalikannya ke bentuk semula.

±14 menitDiperiksa 2026-09-23

UTF-8 menulis titik kode menjadi satu sampai empat byte. Seluruh huruf ASCII tetap satu byte dengan nilai yang sama seperti dulu, sehingga berkas ASCII lama otomatis sah sebagai UTF-8. Karakter di luar ASCII memakai dua byte atau lebih, dan byte-byte itu selalu bernilai 128 ke atas. Aturan lengkapnya ditetapkan RFC 3629.

Mojibake muncul ketika byte UTF-8 dibaca memakai encoding satu byte seperti cp1252 atau latin-1. Program itu tidak menolak, karena setiap byte punya arti di tabelnya sendiri. Hasilnya satu huruf beraksen berubah menjadi dua atau tiga huruf aneh, dan datanya tetap utuh di dalam berkas — yang salah adalah cara membacanya.

Maksud aslinyaByte UTF-8Tampilan saat dibaca cp1252
éC3 A9é
– (tanda pisah en)E2 80 93–
— (tanda pisah em)E2 80 94—
’ (apostrof miring)E2 80 99’
rusak = "André Niño"
benar = rusak.encode("cp1252").decode("utf-8")
print(benar)   # André Niño

Nama orang paling sering jadi korban karena di sanalah aksara di luar ASCII berkumpul: André, Nguyễn, Saoirse, sampai apostrof miring hasil koreksi otomatis pengolah kata. Perbaikan di atas hanya bekerja sekali; kalau berkas yang sudah rusak disimpan ulang sebagai UTF-8, kerusakannya ikut tersimpan dan lapisannya bertambah.

Latihan 3 dari 3

Berkas CSV menampilkan é di tempat é dan – di tempat tanda pisah. Apa yang terjadi pada berkas itu?

Pilih satu jawaban

Jawaban diperiksa di server. Latihan ini memastikan kamu memahami contohnya — bukan bukti seluruh pekerjaanmu sudah benar.

Catatanmu

Memuat catatan…

Catatan tamu tersimpan di browser ini saja. Masuk kalau ingin membacanya di perangkat lain. 0 dari 4.000 karakter.

Selesaikan latihannya dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Sumber

  1. 1. RFC 3629 — UTF-8, a transformation format of ISO 10646 — https://datatracker.ietf.org/doc/html/rfc3629
  2. 2. Unicode FAQ — Basic Questions (karakter, titik kode, encoding) — https://www.unicode.org/faq/basic_q.html
  3. 3. Python — codecs: daftar encoding baku — https://docs.python.org/3/library/codecs.html#standard-encodings

Dicetak dari https://kelasgratis.com/belajar/format-data-dasar/utf-8-dan-mojibake · diperiksa 2026-09-23

Materi ini merujuk dokumentasi resmi (3 sumber). Daftar lengkapnya, beserta lisensinya, ada di halaman Sumber.