Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python2.5中将UTF8字符串转换为HTML字符串以正确显示重音?_Python_Html_Utf 8 - Fatal编程技术网

如何在Python2.5中将UTF8字符串转换为HTML字符串以正确显示重音?

如何在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']

我的字符串UFT8来自一个数据库(以UTF8编码的CSV文件),在浏览器上显示为main.py代码:
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'>