我正在为移动应用程序中的类编写一个语言测试器应用程序,并且在转换重音时会立即出现问题,因此可以使用self.response.write()显示它。这是一个带有法国口音的例子
import webapp2
class MainHandler(webapp2.RequestHandler):
def get(self):
word = "médecin"
self.response.write(word)
app = webapp2.WSGIApplication([
('/', MainHandler)
], debug=True)
当我跑步时,我得到了
localhost目前无法处理此请求。 500
如果我拿出重音字母并写上“mdecine”,它会在浏览器中显示这个词。我有Googleappengine等所有设置,这不是问题。
我在utf8,编码等上找到的任何例子主要用于命令行打印而不在这里工作。我该如何解决这个问题?
答案 0 :(得分:1)
在Python2中,源文件的默认编码是ascii
,正如@ iron-fist所观察到的那样。如果源文件包含非ascii字符,即使在注释中,Python也会引发SyntaxError
:
SyntaxError:文件中的非ASCII字符'\ xc3' /home/user/path/to/main.py在第5行,但没有声明编码;看到 http://www.python.org/peps/pep-0263.html了解详情
有两种方法可以解决这个问题:
# - *- coding: utf- 8 -*-
到您的文件顶部。word = u'm\xe9decin'
根据我的经验,选项(1)更容易使用。在Unicode HowTo in the documentation中,对Python2和Python中的unicode进行了一般性的讨论。