3

データベース (UTF8 でエンコードされた CSV ファイル) から取得した文字列 UFT8 は、main.py コードを使用してブラウザーに次のように表示されます。value ="roulement \u00e0 billes"

=> ブラウザで正しく表示するために、そのような文字列を value="roulement à billes" などの HTML エンティティに変換する方法roulement à billes

追加しようとしました:

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

私のファイルの1行目に、また:

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

でも何も変わらない

=>それで、別の方法はそれをhtmlエンティティに変換することですか? 方法 ?

ありがとうございました。

4

2 に答える 2

9

valueまず、文字列ではなく Unicode 型であることを確認する必要があります

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

HTMLエンティティを取得する必要があります

Python Unicode ドキュメント

>>> value = u"roulement \u00e0 billes"
>>> print value
roulement à billes
>>> print value.encode('ascii', 'xmlcharrefreplace')
roulement à billes
>>>
于 2012-06-26T10:25:57.050 に答える
1

コードに 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'>

そのような文字列を value="roulement à billes" などの HTML エンティティに変換して、ブラウザで roulement à billes として正しく表示する方法。

<やその他のいくつかのように、HTML 自体に干渉するものを除いて、これを行う必要はありません>

HTML ファイルを UTF-8 としてエンコードし、ブラウザーがエンコードを取得することを確認してください (応答のコンテンツ タイプはクールです。ドロップイン<meta charset="UTF-8">または<meta http-equiv="content-type" content="text/html; charset=UTF-8">インサイドにすることもできます<head>。地域の文字はブラウザーで簡単に理解できるはずです。

于 2012-06-26T10:32:00.170 に答える