Tôi đang sử dụng Python 2.6.5. Mã của tôi yêu cầu sử dụng dấu "nhiều hơn hoặc bằng". Ở đây nó đi:Python: Sử dụng .format() trên chuỗi mã Unicode được loại trừ
>>> s = u'\u2265'
>>> print s
>>> ≥
>>> print "{0}".format(s)
Traceback (most recent call last):
File "<input>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2265'
in position 0: ordinal not in range(128)`
Tại sao tôi gặp lỗi này? Có cách nào đúng để làm điều này không? Tôi cần sử dụng chức năng .format()
.
@Kit: Nếu bạn muốn tất cả các chữ cái là Unicode (như trong Python 3), hãy đặt 'từ __future__ import unicode_literals' vào đầu tệp nguồn của bạn. – Philipp
Vâng, điều này sẽ giúp bạn nếu bạn quen với% định dạng vì "% s"% u "\ u2265" hoạt động, nhưng "{}" định dạng (u "\ u2265") sẽ ném một ngoại lệ. – Hylidan
một điều đơn giản .. thật là một cơn đau đầu khủng khiếp mà tôi nhận được cho đến khi tôi tìm được chút giác ngộ này .. –