如何在Python2.5中将UTF8字符串转换为HTML字符串以正确显示重音?
我的字符串UFT8来自一个数据库(以UTF8编码的CSV文件),在浏览器上显示为main.py代码:如何在Python2.5中将UTF8字符串转换为HTML字符串以正确显示重音?,python,html,utf-8,Python,Html,Utf 8,我的字符串UFT8来自一个数据库(以UTF8编码的CSV文件),在浏览器上显示为main.py代码:value=“roulement\u00e0 billes” =>如何将任何此类字符串转换为HTML实体,例如value=“roulementà billes”,以便在浏览器中正确显示为roulementábiles 我试图补充: # -*- coding: utf-8 -*- 在我的文件的第一行,以及: self.response.headers['Content-Type']
value=“roulement\u00e0 billes”
=>如何将任何此类字符串转换为HTML实体,例如value=“roulementà billes”,以便在浏览器中正确显示为roulementábiles
我试图补充:
# -*- coding: utf-8 -*-
在我的文件的第一行,以及:
self.response.headers['Content-Type'] = 'text/html;charset=UTF-8'
但这并没有改变任何事情
=>那么,另一种方法是将其转换为html实体吗?怎么做
谢谢。首先,您应该确保
value
是unicode类型,而不是字符串
value.encode('ascii', 'xmlcharrefreplace')
应该会给你的HTML enitites
要在代码中嵌入unicode字符串文字,请执行以下操作: a) 确保您的源文件为UTF-8格式(并添加
#-*-coding
行),然后直接使用文本:
u'Zażółć gęślą jaźń'
b) 以unicode文字对其进行转义:
u"roulement \u00e0 billes"
在这两种情况下,您都需要使用unicode
类型,而不是str
类型,因此在您的文本前面加上u
>>> type("kos")
<type 'str'>
>>> type(u"kos")
<type 'unicode'>
>类型(“kos”)
>>>类型(u“kos”)
如何将任何此类字符串转换为HTML实体,例如value=“roulementà billes”,以便在浏览器中正确显示为roulementábilles 您不需要这样做,除了那些与HTML本身相互干扰的内容,如
等
只需将HTML文件编码为UTF-8,并确保浏览器会选择编码(响应内容类型很酷,您也可以将
或
放入
中。浏览器应该很容易理解区域字符。您的更改是正确的,但令人费解–我假设错误在别处。字符串存储在哪里?在代码中?它是如何存储的?我们需要更多的代码。如果您r代码实际上是在添加编码
注释之前运行的,那么您的代码实际上不包含UTF-8字符串,否则Python会抱怨的。非常感谢!我在我的代码中添加了:value=unicode(value)value=value.encode('ascii','xmlcharrefreplace'))非常感谢!Philippe很高兴它起到了作用。别忘了勾选答案复选框,如果它被标记为已解决,将帮助其他有类似问题的人!谢谢你的帮助!Philippe
>>> type("kos")
<type 'str'>
>>> type(u"kos")
<type 'unicode'>