我遇到了Python 2.7.x和UnicodeDecodeError
...
首先,这只是文本,在后台运行以控制接收某些数据的电路板。
其次,由于仅限于文本,这仅表示ASCII
。不,我对用英语或其他东西以外的东西展示可能需要的东西不感兴趣。 A-Z,a-z,$$@#$!,0-9
等等等等。
这个错误让我感到烦恼,因为我不确定哪个角色一定不可见是问题..
错误:
Traceback (most recent call last):
File "/home/XX/yyyy/MyPython.py", line 406, in
mainProgram();
File "/home/XX/yyyy/MyPython.py", line 150, in mainProgram
getStatus();
File "/home/XX/yyyy/MyPython.py", line 268, in getStatus
msg = msg + "\n\n" + AlertText
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 194: ordinal not in range(128)
program closed out
这来自这一行:
msg = msg + "\n\n" + AlertText
我从一些代码中获取AlertText,如下所示:
导致问题的部分似乎是来自的文字:
html=urllib2.urlopen('http:/x.y'+Myevent+'&format=TXT&version=1&glossary=0').read()
soup = BeautifulSoup(html)
y=soup.find('pre') #returns data between <pre> tags.
for a in y:
AlertText = a.string
print AlertText
msg = msg + "\n\n" + AlertText
控制台上的AlertText PRINTS(我从屏幕会话中保持一个正在运行的日志,并且可以看到文本进来并且读得很好)就好了......这是python抱怨编码废话不想要合并两个字符串。
我不关心UTF-8或其他任何事情......这个世界对我来说是A-Z/a-z/0-9/$@
等......
我看过类似的事情:
cleanstring = AlertText.decode('ascii','ignore')
相同)(@ $)(&amp; $(!@&amp; $(!关于ascii的错误无法解码...... DUH!我告诉你要忽略那个废话!!:狂:
同样:
import re
AlertText = re.sub("[^A-Za-z]", "",AlertText)
有关如何禁用此检查的任何提示,并告诉python只是合并这些东西忽略编码或强制将所有内容删除到ASCII并继续前进! :)
要清理它......
stringx = asciime(stringx)
如果我无法清除AlertText或者python退出愚蠢的编码而不应该担心开始这样的错误,那么捕获此错误的try|except
事件将无法解决它! URRGRGHH! :狂:
我在这里尝试了其他答案的几件事,但只是继续得到同样的“无法解码”废话......
任何解决这个问题的想法???