Có khá nhiều sự trợ giúp xung quanh điều này, nhưng tôi vẫn còn bối rối.Độ dài Python của sự nhầm lẫn chuỗi unicode
Tôi có một chuỗi unicode như thế này:
title = u'test'
title_length = len(title) #5
Nhưng! Tôi cần len (tiêu đề) để được 6. Các khách hàng mong đợi nó được 6 bởi vì họ dường như đếm theo một cách khác với tôi làm trên phụ trợ.
Như một cách giải quyết, tôi đã viết trợ giúp nhỏ này, nhưng tôi chắc chắn nó có thể được cải thiện (với đủ kiến thức về mã hóa) hoặc có lẽ nó thậm chí còn sai.
title_length = len(title) + repr(title).count('\\U') #6
1. Có cách nào tốt hơn để nhận được độ dài là 6? :-)
Tôi giả sử tôi (Python) đang tính số ký tự unicode là 5. Các khách hàng đang tính số byte?
2. Logic của tôi có bị ngắt đối với các ký tự unicode khác cần 4 byte không?
Chạy Python 2,7 ucs4.
Khách hàng tính các cặp thay thế UTF-16. –
Khi tôi thử chạy hai dòng này, nó cho thấy chiều dài là 6. – ssundarraj
@ssundarraj: xem câu trả lời của tôi; bạn đang chạy bản dựng Python 2 UCS2. Sử dụng Python 3.3 trở lên hoặc tự tạo bản dựng UCS4. –