Tôi đang lập trình ở Python và tôi đang lấy thông tin từ một trang web thông qua thư viện urllib2
. Vấn đề là trang đó có thể cung cấp cho tôi với các ký tự ASCII, như 'ñ'
, 'á'
, vv Trong khoảnh khắc rất urllib2
được nhân vật này, nó gây ra một ngoại lệ, như thế này:Làm cách nào để xử lý các ký tự Unicode (không phải ASCII) bằng Python?
File "c:\Python25\lib\httplib.py", line 711, in send
self.sock.sendall(str)
File "<string>", line 1, in sendall:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 74: ordinal not in range(128)
tôi cần phải xử lý những nhân vật đó. Ý tôi là, tôi không muốn xử lý ngoại lệ nhưng để tiếp tục chương trình. Có cách nào để, ví dụ (tôi không biết nếu điều này là một cái gì đó ngu ngốc), sử dụng khác codec chứ không phải là ASCII? Vì tôi phải làm việc với các ký tự đó, hãy chèn chúng vào cơ sở dữ liệu, v.v.
Sẽ hữu ích nếu bạn có thể nói, cho dù bạn đang sử dụng Python 3+ hay một cái gì đó trước đó. –
Không thể là Py3k kể từ khi mô-đun urllib2 đã được gỡ bỏ (bọc vào urllib) ... –
Trùng lặp: http://stackoverflow.com/questions/1020892/python-urllib2-read-to-unicode –