sử dụng python 2.5.2 và debian linux tôi đang cố gắng để có được nội dung từ một url Tây Ban Nha có chứa một char Tây Ban Nha ('í'):không thể url unicode mở với python
import urllib url = u'http://mydomain.es/índice.html' content = urllib.urlopen(url).read()
tôi đang nhận được lỗi này:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe1' in position 8: ordinal not in range(128)
tôi đã cố gắng sử dụng trước khi đi qua url để urllib này:
url = urllib.quote(url)
và điều này:
url = url.encode('UTF-8')
nhưng nó không hoạt động
bạn có thể cho tôi biết những gì tôi đang làm sai?
Tôi tin rằng điều này từ đó đã được thay đổi, và tại ít nhất các miền hiện có thể chứa các ký tự Unicode tùy ý. – Cerin
@Cerin Sắp xếp. [IRI có thể chứa các ký tự Unicode tùy ý] (https://www.w3.org/International/articles/idn-and-iri), nhưng khi bạn chuyển đổi chúng thành các URI thông thường, chúng sẽ được chuẩn hóa thành ASCII sử dụng 'Punycode' (cho thành phần tên miền) và phần trăm mã hóa (cho thành phần đường dẫn). –