在数据库中,我保存了一个字符串,其中的问题是:za \ u0161 \ u010diten。
[编辑:“问题词”似乎已经改变了]
当我想在我的页面上显示此字符串时(使用 req.write(string))。我收到此错误: UnicodeEncodeError:'ascii'编解码器无法编码位置686-687中的字符:序号不在范围内(128)。
我在Windows上使用Python 2.X | linux | Mac。 [编辑:选择一个]
我的字符串实际上名为html_h2
。以下是我被问到的详细信息:
[编辑:为了易读性插入了空格]
>> print type(html_h2)
<type 'unicode'>
>> print repr(html_h2)
u"\n<table bgcolor='white' border=1 cellpadding=2 cellspacing=1 rules=rows frame=box>
<tr>
<td align='center'>
<img src=img/_up/upload/2010/03/03/… width=120 height=100/>
</td>
<td align='left' style=width:86%>
<h3>V Gr\u010diji kot v vojni</h3>
Gr\u0161ki premier je finan\u010dne razmere v dr\u017eavi, ki je skoraj pred bankrotom, primerjal z razmerami v vojni. Napovedani so ostri var\u010devalni ukrepi.
</td>
</tr>
</table>"
我在%s的字符串中插入数据库字段。 [编辑:无关]
当我这样做时,伊格纳西奥建议:
req.write(html_h2.encode('XXXXXX'))
其中XXXXXX是我在Content-Type标头中声明的字符集,会发生这种情况:
[编辑:删除未发生的结果]
(1)显示就像我希望的那样
(2)我收到一条错误消息:XXXXXXXXXXXXXXXXXXXXXXXXXX
答案 0 :(得分:2)
req.write(string.encode(encoding))
其中encoding
是您在Content-Type
标题中声明的字符集。
答案 1 :(得分:0)
如果string
引用string
模块,则表示string
没有encode
。如果string
实际上是unicode
个对象,那么它确实有一个encode
,但也许string
可能实际上是str
个对象。
回到基础:请给我们一些信息。
请显示以下结果:
# Python 2.X
print type(string)
print repr(string)
或
# Python 3.X
print(type(string))
print(ascii(string))
然后我们可以给你明智的建议,而不是不知情的猜测。
注意:请编辑您的问题以显示输出,不要在评论中回复。使用复制/粘贴,不要从内存中键入。