如何从sqlite获取µ字符并显示在网页上?
在一个使用Python开发的网页应用中,我遇到了一个错误:
无法解码到UTF-8格式的列 'name',文本内容是 '300µL-10-10'
根据我在这里看到的信息,似乎我需要把文本工厂设置为str,并获取字节字符串,但当我这么做后,我的HTML输出变成了这样:
300�L-10-10
我确实把内容类型设置成了:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
1 个回答
3
很遗憾,你的数据存储中的内容不是用UTF-8编码的;它可能是用latin-1或cp1252编码的。为了自动解码这些数据,你可以尝试把Connection.text_factory设置为你自己的一个函数:
def convert_string(s):
try:
u = s.decode("utf-8")
except UnicodeDecodeError:
u = s.decode("cp1252")
return u
conn.text_factory = convert_string