Khi tôi sử dụng .lower()
bằng Python 2.7, chuỗi không được chuyển thành chữ thường cho các chữ cái ŠČŽ
. Tôi đã đọc dữ liệu từ điển.python 2.7 chữ thường
Tôi đã thử sử dụng str(tt["code"]).lower()
, tt["code"].lower()
.
Mọi đề xuất?
Khi tôi sử dụng .lower()
bằng Python 2.7, chuỗi không được chuyển thành chữ thường cho các chữ cái ŠČŽ
. Tôi đã đọc dữ liệu từ điển.python 2.7 chữ thường
Tôi đã thử sử dụng str(tt["code"]).lower()
, tt["code"].lower()
.
Mọi đề xuất?
chuỗi Sử dụng unicode:
[email protected]:~$ python
Python 2.7.2+ (default, Oct 4 2011, 20:06:09)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "ŠČŽ"
ŠČŽ
>>> print "ŠČŽ".lower()
ŠČŽ
>>> print u"ŠČŽ".lower()
ščž
Thấy rằng ít u
? Điều đó có nghĩa là nó được tạo dưới dạng đối tượng unicode
thay vì đối tượng str
.
Nhưng làm thế nào để anh ta nhận được unicode nếu nó không phải là một chữ? – agf
Tôi đang đọc từ dict vậy làm thế nào để chuyển đổi tt ["code"] thành u "ŠČŽ"? – Yebach
Sử dụng ** unicode (tt ["code"], 'latin2') **, trong đó 'latin2' được mã hóa được sử dụng, vì vậy bạn có thể cần sử dụng mã khác. – Tupteq
Sử dụng unicode:
>>> print u'ŠČŽ'.lower().encode('utf8')
ščž
>>>
Bạn cần phải chuyển đổi văn bản của bạn thành Unicode ngay sau khi nó đi vào chương trình của bạn từ thế giới bên ngoài, chứ không phải chỉ đơn thuần là tại điểm mà tại đó bạn nhận thấy một vấn đề.
Theo đó, hãy sử dụng mô-đun codecs
để đọc trong văn bản đã giải mã hoặc sử dụng 'bytestring'.decode('latin2')
(nơi thay cho latin2 bạn nên sử dụng bất kỳ mã hóa thực tế nào).
Hãy xem http://stackoverflow.com/questions/727507/how-can-i-do-unicode-uppercase, tôi nghĩ nó có thể liên quan. – mgilson