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ý.

Thành Phạm viết 19:52 ngày 30/09/2018

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ụ

strTextUnicode.encode('utf8')
Bước 1: Mở cmd gõ chcp 65001 https://msdn.microsoft.com/en-us/library/windows/desktop/dd317756%28v=vs.85%29.aspx Bước 2: Chuột phải vào thanh phía trên cmd (thanh này gọi là thanh gì nhể? smile ) , chọn properties [image] Bước 3: Chọn font Concolas [image] Đến đây thì cmd đã có thể hiển thị chữ có dấu (UTF-8) [image] Bước 4: Tải tool hỗ trợ (có nhiều cách để nhập kí tự unicode nhưng xem ra cách này nhanh nhất ) Tải tool này về: http://www.fileformat.info/tool/unicodeinput/index.htm B…
stackoverflow.com
Carlos Eugenio Thompson Pinz&#243;n

UnicodeEncodeError: 'charmap' codec can't encode - character maps to <undefined>, print function

python, encoding, decode, encode
asked by Carlos Eugenio Thompson Pinz&#243;n on 04:18PM - 31 Jan 13
stackoverflow.com
SstrykerR

UnicodeEncodeError: 'charmap' codec can't encode characters

python, beautifulsoup, urllib
asked by SstrykerR on 06:47PM - 23 Nov 14
htl@PyMI.vn viết 19:45 ngày 30/09/2018

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.

Bài liên quan
0