Karakter aneh saat membaca konten file

Saya tidak yakin apa yang salah:

for line in open(textfile, 'r'):
    print(line)

Keluaran:

abcd

File dibuat menggunakan textpad++ menggunakan Unix EOL dan pengkodean UTF8.

Sekarang berfungsi dengan baik menggunakan Encoding dengan UTF-8 tanpa opsi BOM di notepad++. Tapi kenapa? Maksud saya, bagaimana saya bisa mengonversi semua file yang dikirim ke UTF-8 untuk menghindari karakter aneh?


person thclpr    schedule 28.05.2014    source sumber
comment
Microsoft dan kecintaan mereka pada UTF-8 BOM..   -  person Martijn Pieters    schedule 28.05.2014


Jawaban (2)


Menentukan encoding akan menyelesaikan masalah Anda.

for line in open(textfile, 'r', encoding='utf-8-sig'):
    print(line)

utf_8_sig: Codec UTF-8 dengan tanda tangan BOM

person falsetru    schedule 28.05.2014
comment
Bekerja sebagai pesona :). Saya menandai ini segera setelah saya tiba di rumah. - person thclpr; 28.05.2014

Anda harus mengatur pengkodean file Anda saat membacanya, menggunakan UTF-8.

Tambahkan parameter ketiga ke kode Anda, atur encondingnya. Dari:

for line in open(textfile, 'r'):
    print(line)

to:

for line in open(textfile, 'r', encoding='utf-8-sig'):
    print (line)
person Community    schedule 28.05.2014