30/09/2018, 17:37
Python: Lỗi xuất ký tự unicode trên windows
Mình chạy 1 script python trên Windows bằng 2 cách: trong CMD hoặc Build bằng sublime text 3 (cài package Anaconda) thì bị lỗi:
Traceback (most recent call last):
File "\serverwwwyoutubedl-pythonyoutube-dl.py", line 28, in <module>
print(entry)
File "C:Python34libencodingscp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 83-84: character maps to <undefined>
Trong khi đó chạy trên command line của CentOS thì không vấn đề gì.
Mình nghĩ nó liên quan đến chuỗi được in ra là unicode, và nó không tương thích với bảng mã của windows là cp1252. Mình cũng không hiểu là tại sao trên CentOS thì lại xuất ra được.
Xin các bạn chỉ cho mình cách xử lý.
Bài liên quan
Unicode trên Windows bạn thử dùng chcp 65001 xem, nhưng mà python 2 thì lúc in unicode luôn bị lỗi (thường là lỗi IOError ), python 3 thì sẽ không bị
Nếu vẫn không được ,trước khi print bạn thử encode đoạn text đó sang utf8 xem, ví dụ
UnicodeEncodeError: 'charmap' codec can't encode - character maps to <undefined>, print function
UnicodeEncodeError: 'charmap' codec can't encode characters
Thanks. Mình dùng hàm encode(‘utf8’) hết lỗi rồi. Có điều là phải convert biến đó sang str trước.