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

problème d'encodage de caractères

1 réponse
Avatar
Nicolas Pourcelot
Autre question,
j'avais un script qui marchait très bien sous Windows, mais une fois
lancé sur Ubuntu, j'ai des problèmes d'encodage de caractères qui le
font planter.
J'ai été obligé de supprimer tous les caractères accentués, etc...
Comment je peux faire pour définir un encodage ?
Est-ce qu'il faut que j'utilise des chaînes unicode u"machin" ?
C'est à ça que sert le type unicode, ou je me plante complètement ?
Merci pour votre éclairage :)
Nicolas

1 réponse

Avatar
Sean McIlroy
j'ai resolu ce probleme (au moins, un probleme pareil) en utilisant la
fonction "safename" ci-dessous:

def digitnums(num,base):
reval = []
while True:
reval.insert(0,num%base)
num = num//base
if num==0: break
return reval

digits '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
numeral = lambda num: ''.join([digits[i] for i in digitnums(num,62)])

def safename(strg):
numbers = map(ord,strg)
numerals = map(numeral,numbers)
return 'x_' + '-'.join(numerals)