Giải pháp cho vấn đề của bạn là thử và mã hóa chuỗi trong một mã hóa cụ thể.
Ví dụ:
'H€llø'.encode('utf-8')
này sẽ ném các lỗi sau:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 1: ordinal not in range(128)
Bây giờ bạn có thể nắm bắt được "UnicodeDecodeError" để xác định rằng chuỗi không chỉ chứa các ký tự ASCII.
try:
'H€llø'.encode('utf-8')
except UnicodeDecodeError:
print 'This string contains more than just the ASCII characters.'
Nguồn
2016-03-09 11:45:11
Tôi nghĩ điều này sẽ luôn tạo toàn bộ danh sách? Nó sử dụng nhiều bộ nhớ hơn và sẽ chậm hơn nếu ký tự đầu tiên là ký tự> 0x80 vì nó tiếp tục lặp qua toàn bộ chuỗi (không quan trọng quá nhiều trong * ứng dụng * nhiều nhất, nhưng trong * một số *). – Carpetsmoker
@Carpetsmoker> Tôi nghĩ điều này sẽ luôn tạo ra toàn bộ danh sách?
warvariuc
Được rồi, cảm ơn ;-) – Carpetsmoker