string.maketrans avec utf8

Le
William Dode
slt,

Je suis entrain de migrer en utf8
Du coup je me servait de ça pour enlever les accents :
string.maketrans("ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn")
Mais là en utf8 ça ne marche plus
ValueError: maketrans arguments must have same length

J'ai pas encore fait de recherche très approfondie des tuyaux ?


--
William Dodé - http://flibuste.net
Informaticien Indépendant
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Bruno Desthuilliers
Le #16499181
William Dode a écrit :
slt,

Je suis entrain de migrer en utf8...
Du coup je me servait de ça pour enlever les accents :
string.maketrans("ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn")
Mais là en utf8 ça ne marche plus
ValueError: maketrans arguments must have same length

J'ai pas encore fait de recherche très approfondie... des tuyaux ?




Salut William

Je ne sais pas si ça résoud ton pb, mais:

a =
u"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ".encode('latin1')
b= u"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn".encode('latin1')

print len(a), len(b)

import string
string.maketrans(a, b)
Michel Claveau - NoSpam SVP ; merci
Le #16500511
Bonsoir !

Moi, je ferais plutôt un truc de ce genre :

chainelatin = chargedatalatin()
chaineutf =
chainelatin.decode('latin1','replace').encode('utf-8','replace')

@-salutations
--
Michel Claveau
William Dode
Le #16503411
On 07-08-2008, Bruno Desthuilliers wrote:
William Dode a écrit :
slt,

Je suis entrain de migrer en utf8...
Du coup je me servait de ça pour enlever les accents :
string.maketrans("ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn")
Mais là en utf8 ça ne marche plus
ValueError: maketrans arguments must have same length

J'ai pas encore fait de recherche très approfondie... des tuyaux ?




Salut William

Je ne sais pas si ça résoud ton pb, mais:



Oui c'est ça ! merci


a =
u"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ".encode('latin1')
b= u"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn".encode('latin1')

print len(a), len(b)

import string
string.maketrans(a, b)






--
William Dodé - http://flibuste.net
Informaticien Indépendant
Publicité
Poster une réponse
Anonyme