Tolong jelaskan mengenai Penyebab dari Mojibake

Mojibake sering disebabkan ketika pengkodean karakter tidak dinyatakan dengan benar di dalam dokumen, atau ketika dokumen dipindahkan dari sistem yang dipasang dengan pengkodean karakter berbeda. Tampilan karakter yang salah terjadi ketika sistem aksara atau pengkodean karakter salah tag atau "asing" untuk sistem komputer pengguna. Bila komputer itu tidak memiliki perangkat lunak yang dibutuhkan untuk memproses karakter bahasa asing, maka komputer tersebut akan mencoba memprosesnya memakai pengkodean karakter yang telah terpasang. Akibatnya, tanda tanya, kotak, atau lambang-lambang aneh ditampilkan di layar. Masalah mojibake juga dapat terjadi pada pesan dalam satu bahasa, tetapi dikirim dengan pengkodean karakter berbeda dari pengkodean karakter komputer penerima. Masalah ini sering dijumpai di antara pengguna komputer berbahasa Jepang yang memiliki sejarah sistem operasi dalam beberapa pengkodean karakter.

Penjelajah web kemungkinan tidak dapat membedakan laman web yang di-enkode dengan EUC-JP dan laman web berikutnya yang di-enkode dengan Shift-JIS, kecuali bila skema pengkodean dinyatakan secara eksplisit dalam HTTP header yang dikirim bersama dokumen, atau dalam meta tag HTML yang dipakai untuk mensubstitusi HTTP header yang hilang bila peladen tidak dikonfigurasi untuk mengirimkan HTTP header yang layak. Metode heuristik dapat diterapkan untuk menerka set karakter, tetapi metode ini tidak selalu berhasil.