Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

string.maketrans avec utf8

3 réponses
Avatar
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

3 réponses

Avatar
Bruno Desthuilliers
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)
Avatar
Michel Claveau - NoSpam SVP ; merci
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
Avatar
William Dode
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