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

2024-04-24 16:52:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我的字符串UFT8来自一个数据库(用UTF8编码的CSV文件),在一个浏览器上显示如下,其中main.py代码为:value ="roulement \u00e0 billes"

=>;如何将任何此类字符串转换为HTML实体,例如value=“roulementà billes”,以便在浏览器中正确显示为roulement à billes

我试图补充:

 # -*- coding: utf-8 -*-

在我文件的第一行,还有:

 self.response.headers['Content-Type'] = 'text/html;charset=UTF-8'

但这不会改变什么

=>;那么,另一种方法可能是将其转换为html实体?如何?

谢谢你。


Tags: 文件csv字符串gt实体数据库编码value
2条回答

首先,您应该确保value是unicode类型而不是字符串

value.encode('ascii', 'xmlcharrefreplace')

应该给你拿HTML的电子版

Python Unicode Documentation

>>> value = u"roulement \u00e0 billes"
>>> print value
roulement à billes
>>> print value.encode('ascii', 'xmlcharrefreplace')
roulement à billes
>>>

要在代码中嵌入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'>

how to convert any of such string into HTML entities, such as value="roulement &agrave billes" in order to display correctly as roulement à billes with a browser.

您不应该这样做,除了那些与HTML本身相互干扰的,比如<>和更多的。

只需将您的HTML文件编码为UTF-8,并确保浏览器会接受编码(响应内容类型很酷,您还可以在<meta charset="UTF-8"><meta http-equiv="content-type" content="text/html; charset=UTF-8">内插入<head>)。浏览器应该容易理解区域字符。

相关问题 更多 >