Google App Engine 使用Python的UTF-8编码问题

1 投票
2 回答
520 浏览
提问于 2025-04-16 23:48

我希望能得到你的帮助,解决一个可能很简单的问题。最近我开始学习Python,主要是为了在Google App Engine环境下工作。说实话,我是从最简单的Hello World应用开始的。

英文版的代码运行得很好。

但是,当我尝试用我的母语来处理字符时,问题就来了。基本上,在本地机器上运行时,它无法正确显示字母。

这是让我头疼的那段代码:

# -*- coding: utf-8 -*-
import datetime

print 'Content-Type: text/html'
print ''
print '<html>'
print '<head>'
print '<title>Witaj świecie</title>'
print '</head>'
print '<body>'
print '<h1>Witaj świecie</h1>'
print ''
print 'Data logowania to: %s' % (datetime.datetime.now())
print '</body>'
print '</html>'

当然,我保存所有文件时都使用utf-8格式。有没有人能告诉我怎么才能让utf-8字符正确显示呢?

2 个回答

3

这段代码是用来处理一些数据的。它的主要目的是从一个地方获取信息,然后对这些信息进行一些操作,最后再把结果输出。具体来说,它可能会从数据库中提取数据,进行计算,或者格式化成我们需要的样子。

在编程中,我们经常需要处理数据,这段代码就是一个例子。它展示了如何把原始数据变成我们可以使用的形式。虽然代码看起来可能有点复杂,但其实它的核心思想就是获取、处理和输出数据。

如果你对这段代码有疑问,可以尝试逐行理解每一部分是做什么的,慢慢来,你会发现其实并没有想象中那么难。

print '<html>'
print '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
print '<head>'
2

在设置内容类型的时候,要记得设置编码:

print 'Content-Type: text/html; charset=UTF-8'

不要像@bpgergo建议的那样使用meta标签;因为meta标签是专门针对HTML的,它只是覆盖了头部信息。既然你已经在设置头部信息了,直接把它们设置正确会更简单、更好。

其实你不应该使用CGI来输出内容,使用print语句会让事情变得很乱,而且当你的应用变得更大时,维护起来会非常麻烦,同时也会让国际化变得更加困难。相反,应该使用WSGI和模板技术——可以参考App Engine的入门指南,特别是这个这个

撰写回答