Retourner les N premiers caractères d'une chaîne unicode

J'ai une chaîne de caractères au format unicode et j'ai besoin de renvoyer les N premiers caractères.
Je suis en train de faire ceci:

result = unistring[:5]

mais bien sûr, la longueur des chaînes unicode != longueur de caractères.
Des idées? La seule solution est d'utiliser re?

Edit: Plus d'infos

unistring = "Μεταλλικα" #Metallica written in Greek letters
result = unistring[:1]

retourne-> ?

Je pense que des chaînes unicode sont deux octets (char), c'est pourquoi cette chose arrive. Si je fais:

result = unistring[:2]

- Je obtenir

M

ce qui est correct,
Donc, dois-je toujours tranches*2 ou devrais-je convertir à quelque chose?

Êtes-vous sûr que vous avez une chaîne unicode réelle, et non pas (dire) un bytestring avec des données UTF-8? Si oui, comment définir le "caractère"? (unicode chaînes sont des chaînes de codepoints (UCS-4 builds) ou codeunits.)
De notre hôte: le joelonsoftware.com/articles/Unicode.html
Allons, s'il vous plaît pas. Ce n'est pas vraiment applicable ici.
En fait, il est. L'OP est clairement confus au sujet de l'unicode rapport à UTF-8.

OriginalL'auteur Jon Romero | 2010-01-28