У меня есть строка в Юникоде, и мне нужно вернуть первые N символов. Я делаю это:Возврат первых N символов строки unicode
result = unistring[:5]
но, конечно, длина Юникода строк = длина символов!. Любые идеи? Единственное решение - использовать re?
Edit: Подробнее
unistring = "Μεταλλικα" #Metallica written in Greek letters
result = unistring[:1]
ВОЗВРАЩЕНИЕ>?
Я думаю, что строки unicode - это два байта (char), вот почему это происходит. Если я:
result = unistring[:2]
Я получаю
M
, который является правильным, Таким образом, я должен всегда ломтик * 2 или я должен преобразовать к чему-то?
Уверены ли вы, что у вас есть фактическая строка в Юникоде, а не (скажем) об ошибке с данными UTF-8? Если да, то как вы определяете «характер»? (строки Юникода - это строки кодовых страниц (в сборках UCS-4) или кодеки.) –
От нашего хоста: http://www.joelonsoftware.com/articles/Unicode.html – Will
Будет, пожалуйста, нет. Здесь это не применимо. – Joey