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 "\\server\www\youtubedl-python\youtube-dl.py", line 28, in <module>
    print(entry)
  File "C:\Python34\lib\encodings\cp1252.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ý.

2 Likes

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ị :smile:

Nếu vẫn không được ,trước khi print bạn thử encode đoạn text đó sang utf8 xem, ví dụ

strTextUnicode.encode('utf8')
2 Likes

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.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?