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

2024-05-19 02:55:05 发布

您现在位置:Python中文网/ 问答频道 /正文

这行给了我一个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),但它仍然会给我同样的错误。

非常感谢你的帮助。


Tags: 错误unicodeutfcodecencodeintxa0ignore
1条回答
网友
1楼 · 发布于 2024-05-19 02:55:05

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

相关问题 更多 >

    热门问题