UnicodeEncodeError: 'decimal' 编解码器无法对位置 8 中的字符 u'\x00' 进行编码:十进制 Unicode 字符串无效



这条线给我一个 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: 'xc2xa0xc2xa0100xc2xa0xc2xa0'

我尝试指定其他编码(例如'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