Programuję w Python i uzyskuję informacje ze strony internetowej za pośrednictwem biblioteki urllib2
. Problem polega na tym, że ta strona może dostarczyć mi znaków spoza ASCII, jak 'ñ'
, 'á'
etc. W chwili urllib2
dostaje tę postać, to wywołuje wyjątek, tak:Jak obsługiwać znaki Unicode (spoza zestawu ASCII) w języku 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)
muszę obsłużyć te postacie. Mam na myśli, nie chcę obsługiwać wyjątku, ale kontynuować program. Czy jest jakiś sposób, aby na przykład (nie wiem, czy to jest coś głupiego), użyć innego codec zamiast ASCII? Ponieważ muszę pracować z tymi postaciami, wstawić je do bazy danych, itp.
Przydałoby się, gdybyś mógł powiedzieć również, czy używasz Pythona 3+ lub czegoś wcześniejszego. –
Nie można używać Py3k, ponieważ moduł urllib2 został usunięty (opakowany w urllib) ... –
Duplikat: http://stackoverflow.com/questions/1020892/python-urllib2-read-to-unicode –