Tôi có một chuỗi trong unicode và tôi cần trả lại N ký tự đầu tiên. Tôi đang thực hiện việc này:Trả về các ký tự đầu tiên của một chuỗi unicode
result = unistring[:5]
nhưng tất nhiên là độ dài của chuỗi unicode! = Chiều dài ký tự. Bất kỳ ý tưởng nào? Giải pháp duy nhất là sử dụng lại?
Edit: Thông tin thêm
unistring = "Μεταλλικα" #Metallica written in Greek letters
result = unistring[:1]
returns->?
Tôi nghĩ rằng chuỗi unicode là hai byte (char), đó là lý do tại sao điều này xảy ra. Nếu tôi làm:
result = unistring[:2]
tôi nhận được
M
đó là chính xác, Vì vậy, tôi phải luôn luôn cắt * 2 hay tôi nên chuyển đổi sang một cái gì đó?
Bạn có chắc chắn rằng bạn có một chuỗi unicode thực tế không, và không (nói) xác định bằng dữ liệu UTF-8? Nếu vậy, làm thế nào để bạn xác định 'nhân vật'? (chuỗi unicode là chuỗi các codepoints (trong UCS-4 builds) hoặc codeunits.) –
Từ máy chủ của chúng tôi: http://www.joelonsoftware.com/articles/Unicode.html – Will
Xin vui lòng không. Điều đó không thực sự áp dụng ở đây. – Joey