SyntaxError:当函数返回“英镑”时,文件中的非ASCII字符“\xa3”

2024-04-26 00:42:24 发布

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

假设我有一个函数:

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__'部分中。


Tags: 函数in程序消息内容returndef错误
3条回答

在.py脚本的顶部添加以下两行对我有效(第一行是必需的):

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

我建议你读一读错误给你的那篇文章。问题是代码试图使用ASCII编码,但是pound符号不是ASCII字符。尝试使用UTF-8编码。首先,可以将# -*- coding: utf-8 -*-放在.py文件的顶部。为了更高级,您还可以在代码中逐个字符串定义编码。但是,如果您试图将磅符号文字输入到代码中,则需要对整个文件提供支持的编码。

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

def NewFunction():
    return u'£'

或者使用Python2.6之后提供的魔力使其自动:

from __future__ import unicode_literals

相关问题 更多 >