查看: 1782|回复: 3

SyntaxError: Non-ASCII character '\xa3' in file 'blah' but no encoding declared;

[复制链接]

4

主题

37

帖子

98

积分

注册会员

Rank: 2

积分
98
发表于 2018-9-19 15:39:19 | 显示全部楼层 |阅读模式
  1. def NewFunction():
  2.     return '£'
复制代码

我想在它前面打一些带有井号的东西,当我尝试运行这个程序时会输出错误,显示以下错误信息:
SyntaxError: Non-ASCII character '\xa3' in file 'blah' but no encoding declared;
see http://www.python.org/peps/pep-0263.html for details
谁能告诉我如何在返回功能中加入英镑符号?
回复

使用道具 举报

4

主题

33

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2018-9-19 15:40:10 | 显示全部楼层
问题是你的代码正在尝试使用ASCII编码,但井号不是ASCII字符。尝试使用UTF-8编码。你可以从# -*- coding: utf-8 -*-.py文件的顶部开始。要获得更高级的功能,你还可以在代码中逐个字符串地定义编码。但是,如果你尝试将井号符号文字放入代码中,则需要一个支持整个文件的编码。
回复

使用道具 举报

19

主题

68

帖子

225

积分

论坛管理

Rank: 4

积分
225
发表于 2018-9-19 15:41:09 | 显示全部楼层
添加以下两行坐在我的.py脚本的顶部为我工作(第一行是必要的):
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
复制代码

回复

使用道具 举报

3

主题

31

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2018-9-19 15:43:03 | 显示全部楼层
首先将# -*- coding: utf-8 -*-行添加到文件的开头,然后u+字符串用于所有非ASCII unicode数据:
  1. def NewFunction():
  2.     return u'£'
复制代码

或使用Python 2.6以上的unicode_literals使其自动化:
from __future__ import unicode_literals
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表