2

我正在使用 Django 1.3。你能这么好心回答我一个问题吗?我正在从我的数据库中读取数据,其中编码设置为 untf8-unicode

settings.py
DEFAULT_CHARSET = 'utf-8'

file.py
# -*- coding: utf-8 -*-
def get_gift(gift_id):
    gift = Gift.objects.get(id__exact = gift_id, is_visible = True)
    return gift

def output():
    gift = get_gift(gift_id)
    title = gift.name.encode('utf-8')
    return HttpResponse(title)

作为回应,我收到了 \u0411\u0435\u0441\u0435\u0434\u043a\u0430,但它应该是俄语(西里尔文)

4

1 回答 1

0

通常情况下,您有 Unicode 中的非罗马文本数据,但您无法显示它——通常是因为您试图通过不支持 Unicode 的应用程序向用户显示它,或者因为您使用的字体需求不可访问。您可以将 Unicode 字符表示为“?????????” 或“\15BA\15A0\1610...”,但这对于真正想要阅读文本内容的用户来说几乎没有用。

Unidecode 提供的是一个函数,'unidecode(...)',它接受 Unicode 数据并尝试用 ASCII 表示它(即,在 0x00 和 0x7F 之间的通用可显示字符)。

这种表示几乎总是尝试音译——即用罗马字母传达文本在其他书写系统中表达的发音。(见上面的例子)

更多信息在这里

尝试pip install Unidecode

于 2011-09-21T12:50:16.173 回答