我从数据库中检索到许多字符串,其中包括一些需要显示的字符,例如€(我正在使用python 2.7)。但是问题是出现了以下错误:
UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 33: invalid start byte
在这种情况下,字符串类似于st = ‘ the price in €’
,但它可能是一个不同的符号(目前,错误仅在这种情况下出现,但将来另一个字符可能会给我带来这个问题)
我使用以下方法解决了该错误:
st = st.decode('utf8', errors='ignore')
该解决方案的问题是它删除了符号€,但我想显示该符号。我尝试使用repr(st)
来找到什么编码,它给了我‘\x80’
。
我想找到一种方法,可以打印该字符€,但无需专门搜索该符号(因为它可能是另一个符号),并且设法避免出现该错误。
我不知道是否还有其他方法可以解决该问题,因为我的方法是尝试查找该char的编码并尝试将其转换为普通字符串,但是我发现尝试显示该错误也出现了编码为“ latin1”,“ utf-8”或“ ascii”。也许我的问题是我没有编码经验,我只是一个菜鸟。
答案 0 :(得分:0)
此库可以检测字符串的编码。但这不能保证是100%准确的,因为这是不可能的,至少目前是这样。您可以阅读他们的文档以获取详细说明。希望这可以解决您的问题。