抓取/文字unicode在谷歌应用引擎上的显示方式不同

2024-10-02 02:24:00 发布

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

在下面的代码中,我有两个unicode。第一个是从GB2312编码的网页中抓取的,第二个是字面上的unicode。在

logging.debug(type(s))
logging.debug(s)
logging.debug(repr(s))
logging.debug(s.encode('gb2312', errors='replace'))
logging.debug(s.encode('utf-8', errors='replace'))
tmplt = jinja_env.get_template('hello.html')
logging.debug(tmplt.render(text=s))

self.response.out.write(s)
self.response.out.write(repr(s))
self.response.out.write(tmplt.render(text=s))
self.response.out.write('<br>')

s = u'你好'
logging.debug(type(s))
logging.debug(s)
logging.debug(repr(s))
logging.debug(s.encode('gb2312', errors='replace'))
logging.debug(s.encode('utf-8', errors='replace'))
tmplt = jinja_env.get_template('hello.html')
logging.debug(tmplt.render(text=s))

self.response.out.write(s)
self.response.out.write(repr(s))
self.response.out.write(tmplt.render(text=s))

然而,gae日志显示只有后者工作正常。在

^{pr2}$

我已经验证了在ipython中抓取的unicode和字面的unicode是相同的,并且抓取的unicode在我的本地dev_appserver中工作得很好。在

thx@unutbu,这两个repr(s)在appengine上是不同的,但是在我的本地dev server中是相同的。我在python27运行时使用gae1.6.1。下面是我的本地开发服务器日志。在

<type 'unicode'>
你好
u'\u4f60\u597d'
你好
浣犲ソ
锘夸綘濂?
<type 'unicode'>
你好
u'\u4f60\u597d'
你好
浣犲ソ
锘夸綘濂?

谁能帮帮我吗?在


Tags: textdebugselfresponseloggingtypeunicoderender

热门问题