繁体   English   中英

从包含符号的字符串中不知道该符号的编码,如何显示完整的字符串以避免出错?

[英]From an string that contains a symbol without knowing the encoding of that symbol, how can I show the complete string avoiding having errors?

我从数据库中检索了许多字符串,其中包含我需要显示的一些字符,例如€(我使用的是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'。 也许我的问题是我没有任何编码经验,我只是一个菜鸟。

尝试chardet库

该库可以检测字符串的编码。 但它不能保证100%准确,因为这是不可能的,至少现在是这样。 您可以阅读他们的文档以获得详细说明。 希望这能解决您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM