J'ai une chaîne en Unicode et j'ai besoin de retourner les N premiers caractères. Je fais ceci:Renvoyer les N premiers caractères d'une chaîne unicode
result = unistring[:5]
mais bien sûr, la longueur des chaînes unicode = longueur de caractères!. Des idées? La seule solution utilise re?
Modifier: Plus d'infos
unistring = "Μεταλλικα" #Metallica written in Greek letters
result = unistring[:1]
returns->?
Je pense que les chaînes unicode sont deux octets (char), c'est pourquoi cette chose arrive. Si je fais:
result = unistring[:2]
Je reçois
M
qui est correct, Alors, dois-je couper toujours * 2 ou devrais-je convertir en quelque chose?
Etes-vous sûr d'avoir une chaîne unicode réelle, et pas (disons) un bytestring avec des données UTF-8? Si oui, comment définissez-vous le «caractère»? (Les chaînes Unicode sont des chaînes de codes (dans les versions UCS-4) ou des codeunits.) –
De notre hôte: http://www.joelonsoftware.com/articles/Unicode.html – Will
Will, s'il vous plaît pas. Ce n'est pas vraiment applicable ici. – Joey