UnicodeEncodeError: 'virgule' codec ne peut pas encoder les caractères u'\x00' à la position 8: invalid décimal chaîne Unicode
Cette ligne est de me donner un UnicodeEncodeError
studentID = int(studentID.unicode_markup.encode('utf-8').decode('utf-8', 'ignore'))
Précisément l'erreur est ce UnicodeEncodeError: 'decimal' codec can't encode character u'\x00' in position 8: invalid decimal Unicode string
Si je change la ligne à ceci:
studentID = int(studentID.unicode_markup.encode('utf-8'))
J'obtiens cette erreur:
ValueError: invalid literal for int() with base 10: '\xc2\xa0\xc2\xa0100\xc2\xa0\xc2\xa0'
J'ai essayé de spécifier un encodage différent (comme 'ascii') mais il me donne toujours la même erreur.
Aide est grandement appréciée.
- Pourquoi êtes-vous d'encodage et de décodage de la chaîne quand elle est déjà en unicode? Tout ce que vous devez faire est de passer dans la chaîne directement: c'est à dire
int(studentID.unicode_markup)
. La chaîne a de non-rupture des espaces au début et à la fin, maisint()
automatiquement la bande de personnes. - int(studentID.unicode_markup) me donne l'erreur: UnicodeEncodeError: 'virgule' codec ne peut pas encoder les caractères u'\x00' à la position 8: invalid décimal chaîne Unicode
- Le document html doit contenir des caractères null. Où en êtes-vous ce document? Êtes-vous de le télécharger? Et si oui, comment êtes-vous de la conversion en unicode?
Vous devez vous connecter pour publier un commentaire.
Vous ont des caractères visibles dans votre chaîne de caractères avant et après le
100
. Par conséquent, laint
fonction est un échec car il ne peut pas convertir cette chaîne en un entier (int).Essayez la méthode suivante pour analyser les chiffres avant de tenter de les convertir en int:
m = re.search(r'\d+', studentID.unicode_markup)
utf-8
? Vous devriez être en mesure d'exécuterre.search
sur l'originalunicode_markup
avec le même résultat.