googleappengine和python中的重音转换

时间:2016-04-01 20:15:28

标签: python unicode

我正在为移动应用程序中的类编写一个语言测试器应用程序,并且在转换重音时会立即出现问题,因此可以使用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,编码等上找到的任何例子主要用于命令行打印而不在这里工作。我该如何解决这个问题?

1 个答案:

答案 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了解详情

有两种方法可以解决这个问题:

  1. 您可以使用。声明文件的替代编码 正如您所做的那样,编码cookie # - *- coding: utf- 8 -*-到您的文件顶部。
  2. 您可以使用非ascii字符的转义形式 unicode字符串:word = u'm\xe9decin'
  3. 根据我的经验,选项(1)更容易使用。在Unicode HowTo in the documentation中,对Python2和Python中的unicode进行了一般性的讨论。