Apa yang terjadi pada teks UTF-8?
UTF-8 adalah cara standar menyimpan huruf sebagai byte. Huruf biasa A–Z hanya butuh satu byte, tetapi karakter khusus seperti é, €, tanda kutip miring atau emoji butuh dua sampai empat byte. Jika program lain membaca teks itu sebagai Windows-1252 atau ISO-8859-1, setiap byte tampil sebagai karakter tersendiri. Hasilnya disebut mojibake – penjelasan lengkapnya ada di apa itu mojibake.
Rusak
Terima kasih, Bu! Pesanan sudah dikirim – ongkir €5 ditanggung toko 😊
Diperbaiki
Terima kasih, Bu! Pesanan sudah dikirim – ongkir €5 ditanggung toko 😊
Penyebab yang paling sering
- Koneksi database memakai
latin1, padahal datanya UTF-8. Untuk WordPress, lihat WordPress & database (dalam bahasa Inggris). - Server web mengirim
charset=ISO-8859-1, padahal halaman disimpan sebagai UTF-8. - Program e-mail atau aplikasi newsletter mencantumkan encoding yang salah – misalnya di Outlook (dalam bahasa Inggris).
- Teks disalin antarprogram yang mengharapkan encoding berbeda, misalnya dari ekspor chat WhatsApp ke aplikasi lama.
Untuk pengguna di Indonesia, gejalanya paling sering terlihat pada tanda kutip dan apostrof dari Microsoft Word, tanda pisah, simbol mata uang asing dan emoji. Teks berbahasa Indonesia biasa tetap utuh, sehingga kerusakan kecil seperti ’ mudah terlewat sampai dokumen dipublikasikan. File subtitle punya masalah serupa – lihat subtitle dengan karakter aneh.
Rusak dua kali: é
Jika teks yang sudah rusak dikonversi salah sekali lagi, terjadilah mojibake ganda: é mula-mula menjadi é, lalu é. Ini sering terjadi saat data dipindahkan antarsistem beberapa kali. Mojibuster mengenali tingkatan ini dan memperbaiki hingga tiga sekaligus. Selengkapnya: perbaiki UTF-8 yang di-encode dua kali (dalam bahasa Inggris).
Untuk developer: atasi penyebabnya
- Tulis
<meta charset="utf-8">di HTML dan kirim headerContent-Type: text/html; charset=utf-8. - Gunakan
utf8mb4di MySQL dan MariaDB untuk tabel dan koneksi (SET NAMES utf8mb4) – detail di MySQL dan phpMyAdmin (dalam bahasa Inggris). - Simpan file kode sumber sebagai UTF-8 tanpa BOM.
- Konversi teks hanya sekali – di batas antara sistem Anda dan dunia luar.
- Selalu sebutkan encoding di skrip – panduan untuk PowerShell, Python dengan pandas dan Notepad++ (dalam bahasa Inggris).
Pertanyaan yang sering diajukan
Apa arti karakter �?
Itu karakter pengganti U+FFFD. Program menyisipkannya ketika tidak bisa membaca sebuah byte. Karakter aslinya sudah hilang – Mojibuster memberi tahu berapa banyak tempat yang terdampak. Baca juga tentang tanda tanya pengganti huruf.
Bisakah kode HTML seperti é ikut diubah?
Bisa. Aktifkan Ubah juga kode HTML. Kode seperti é, é dan é lalu diubah menjadi karakter asli.
Apakah teks saya disimpan?
Tidak. Perbaikan berjalan di browser Anda. Teks tidak dikirim dan tidak disimpan di mana pun.
Bagaimana cara memakai Mojibuster untuk teks UTF-8 yang rusak?
Salin teks yang rusak dari database, e-mail atau halaman web, lalu tempelkan ke kotak di atas. Mojibuster langsung memperbaikinya dan menandai setiap tempat yang berubah di Apa yang berubah?. Setelah itu salin hasilnya atau unduh sebagai file UTF-8. Untuk file lengkap, lihat perbaiki encoding CSV.
Apakah ini juga berfungsi untuk bahasa lain?
Ya. Mojibuster memperbaiki setiap karakter yang salah dibaca dari UTF-8 – misalnya aksen Prancis, umlaut Jerman, emoji atau huruf Jepang.