在python中,我使用html模板显示Steam播放器的信息。
模板是:
'''<td>
<div>
Name: %s<br>
Hours: %s<br>
<a href="http://steamcommunity.com/profiles/%s" target="_blank">Steam Profile</a> <br>
</div>
</td>'''
所以我有TEMPLATE%(personaName,tf2Hours,id64)
稍后该模板将保存到html文件中。
偶尔会返回UnicodeDecodeError,因为personaName可能包含奇怪的字符。
有没有办法在最终的html文件中保留正确的字符时避免这种情况?
编辑:
错误的原因是非unicode字符。
执行unicode(personaName,errors =&#39;忽略&#39;)解决了这个问题。
答案 0 :(得分:1)
尝试:
u'UnicodeTextHereaあä'.encode('ascii', 'ignore')
这将忽略无法转换为ascii的unicode字符。
以下是我刚试过的几个例子。
>>> x = 'Hello world!'
>>> y = 'notあä ascii'
>>> x.encode('ascii', 'ignore')
b'Hello world!'
>>> y.encode('ascii', 'ignore')
b'not ascii'
如您所见,它删除了所有非ascii字符的痕迹。
或者,您可以告诉解释器您正计划读取unicode值。例如(来自docs.python.org/3.3/howto/unicode.html),
with open('unicode.txt', encoding='utf-8') as f:
for line in f:
print(repr(line))
这将解释并允许您按原样读取unicode。