J'utilise actuellement Beautiful Soup pour analyser un fichier HTML et appeler get_text()
mais j'ai l'impression qu'on me laisse avec beaucoup de \xa0 Unicode représentant des espaces. Existe-t-il un moyen efficace de les supprimer tous dans Python 2.7, et de les transformer en espaces ? Je suppose que la question plus générale serait : existe-t-il un moyen de supprimer le formatage Unicode ?
J'ai essayé d'utiliser : line = line.replace(u'\xa0',' ')
comme le suggérait un autre fil de discussion, mais cela a modifié le résultat de l'opération. \xa0 des "u", donc maintenant j'ai des "u" partout à la place. ) :
EDIT : Le problème semble être résolu par str.replace(u'\xa0', ' ').encode('utf-8')
mais je fais juste .encode('utf-8')
sans replace()
semble lui faire cracher des caractères encore plus bizarres, \xc2 par exemple. Quelqu'un peut-il expliquer cela ?
0 votes
J'ai déjà essayé, le codec 'ascii' ne peut pas décoder l'octet 0xa0 en position 0 : ordinal not in range(128)
18 votes
Embrasser Unicode. Utilisez
u''
au lieu de''
s. :-)2 votes
J'ai essayé d'utiliser str.replace(u') \xa0 ', ' ') mais il y a des "u" partout au lieu de \xa0s :/
0 votes
Si la chaîne de caractères est unicode, vous devez utiliser la fonction
u' '
remplacement, et non le' '
. La chaîne originale est-elle la chaîne unicode ?