在python,tornado和redis上处理网站中的外来字符

2024-09-30 01:27:00 发布

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

我读了很多相关的问题,对如何处理这种情况有点不确定。在

最基本的问题是:处理“外来”(希伯来语、希腊语、亚拉姆语)的最佳方式是什么?等等)网站上的人物?在

我知道我需要使用UTF-8编码,但是它背后的机制却不在我的掌握之中。在

我使用tornado作为我的框架,并将数据存储在redis中。在

我当前的实现是简单地将英语键盘等价物存储在数据存储中,然后用适当的希伯来语/希腊语字体(例如。Bwhebb.ttf公司). 这在很大程度上是有效的,但是我遇到了一些正在被CGI编码的字符,这些字符反过来又会导致字体方法中断。在


Tags: 数据redis框架编码网站方式字体情况
2条回答

阅读评论中给出的文章。在

简短的回答是,将unicode存储在Redis中,如果您使用python2.x,则在整个过程中使用unicode字符串(u"")。在从Redis检索之后,您可能必须转换为unicode(unicode()),这取决于Redis提供的功能。在

你应该用unicode保存你的文本。在

import redis
r = redis.Redis(host='localhost', port=6379, db=0)

greek = u'αβγδ'
greek, type(greek)
# (u'\u03b1\u03b2\u03b3\u03b4', <type 'unicode'>)

r.set(u"greek", greek)
# True

但是当您检索它时,Redis很可能会给您一个字节字符串,这不是您想要的:

^{pr2}$

要将其转换为unicode,如下所示:

greek2 = unicode(r.get(u"greek"), "utf-8")
greek2, type(greek2)
# (u'\u03b1\u03b2\u03b3\u03b4', <type 'unicode'>)

相关问题 更多 >

    热门问题