Error: UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 36288: character maps to

Traceback (most recent call last):
  File "D:\Wordpress\wp.py", line 52, in <module>
    site = open(input('        Website: '),'r').read().splitlines()
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "C:\Users\udhie\AppData\Local\Programs\Python\Python313\Lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
           ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Oooh, error UnicodeDecodeError, huh? 😟 Mari kita pecahkan masalahnya bersama! Berikut adalah langkah-langkah yang dapat kamu coba untuk mengatasi pesan error ini:


1. Diagnosis Masalah

Error ini muncul karena ada file yang kamu buka (open()) menggunakan encoding bawaan sistem (seperti cp1252 pada Windows), tetapi file tersebut berisi karakter yang tidak dikenali oleh encoding tersebut.

Contohnya: File mungkin mengandung karakter non-English (seperti karakter Unicode tertentu), yang tidak didukung encoding sistem.


2. Solusi

Coba solusi berikut untuk mengatasi masalah ini:

a. Pastikan Encodings yang Tepat

Saat membuka file dengan open(), tambahkan parameter encoding='utf-8'. UTF-8 adalah encoding universal yang mendukung hampir semua karakter.

Ganti baris kode ini:

site = open(input('        Website: '),'r').read().splitlines()

Dengan:

site = open(input('        Website: '), 'r', encoding='utf-8').read().splitlines()

b. Tangani File yang Rusak

Jika file yang kamu buka memiliki encoding berbeda (misalnya latin1, ISO-8859-1, atau lainnya), kamu mungkin perlu mencoba encodings berbeda seperti ini:

site = open(input('        Website: '), 'r', encoding='latin1').read().splitlines()

Jika kamu tidak yakin dengan encoding file, charmap/lainnya dapat membantu. Tetapi UTF-8 adalah pilihan terbaik.


3. Other Debugging Tips

Tambahkan try-except untuk menangani error ini dengan lebih user-friendly:

try:
    site = open(input('        Website: '), 'r', encoding='utf-8').read().splitlines()
except UnicodeDecodeError as e:
    print(f"Error membaca file: {e}")

Cek File Input: Apakah file yang kamu buka benar-benar file teks? Jika bukan (misalnya file biner), mungkin kamu harus membukanya dengan mode 'rb' (binary):

site = open(input('        Website: '), 'rb').read()

Coba perbaikan ini dulu ya! Kalau masih error lagi, bagikan pesan error terbaru agar aku bisa bantu lebih lanjut! 😉✨