unicode - 在函数返回'£'时,SyntaxError: 非ASCII字符'xa3'

假设我有一个函数:


def NewFunction():
 return '£'

我想在它前面打印一些带有磅符号的东西,当我尝试运行这个程序时它会打印出一个错误,这个错误消息显示:


SyntaxError: Non-ASCII character 'xa3' in file 'blah' but no encoding declared;
see http://www.python.org/peps/pep-0263.html for details

任何人都能告诉我如何在我的返回函数中包含一个英镑符号? 我基本上在一个类中使用它,它在 '__str__' 部分中,它包含了英镑符号。

时间:

我建议阅读这个错误给你。 问题是你的代码试图使用ASCII编码,但英镑符号不是ASCII字符。 尝试使用UTF-8编码。你可以从 # -*- coding: utf-8 -*- 在. py 文件的顶部。 要获得更高级的信息,你还可以在代码中根据字符串定义字符串的编码。 但是,如果你试图将英镑符号放入代码中,你需要一个支持整个文件的编码。

在我的. py 脚本的顶部添加了以下两行,用于我的( 第一行是必需的):


#!/usr/bin/env python
# -*- coding: utf-8 -*- 

首先添加 # -*- coding: utf-8 -*- 到文件开头,然后使用 u'foo' 对所有 non-ASCII unicode数据使用:


def NewFunction():
 return u'£'

或者使用自 python 2.6之后可用的魔术使它的自动:


from __future__ import unicode_literals

...