UnicodeEncodeError: 'decimal' codec can't encode character u'\x00' in position 8: invalid decimal Unicode string

UnicodeEncodeError: 'decimal' codec can't encode character u'\x00' in position 8: invalid decimal Unicode string

这条线给了我 UnicodeEncodeError

studentID = int(studentID.unicode_markup.encode('utf-8').decode('utf-8', 'ignore'))

具体报错是这个UnicodeEncodeError: 'decimal' codec can't encode character u'\x00' in position 8: invalid decimal Unicode string

如果我将行更改为:

studentID = int(studentID.unicode_markup.encode('utf-8'))

我收到这个错误:

ValueError: invalid literal for int() with base 10: '\xc2\xa0\xc2\xa0100\xc2\xa0\xc2\xa0'

我已经尝试指定不同的编码(如 'ascii'),但它仍然给我同样的错误。

非常感谢帮助。

您的字符串中 100 前后有一些不可见的字符。因此 int 函数失败,因为它无法将此字符串转换为 int。

在尝试转换为 int 之前,请尝试使用以下方法解析任何数字:

import re

# find all characters in the string that are numeric.
m = re.search(r'\d+', studentID.unicode_markup)
numeric = m.group() # retrieve numeric string
int(numeric) # returns 100