Python调用URL时出现非ASCII字符语法错误

4

数据如何发送到服务器?

例如,我检索了MAC地址,因此我想将其发送到服务器(例如:http://211.21.24.43:8080/data?mac=00-0C-F1-56-98-AD

我在互联网上找到了这个代码片段:

from urllib2 import Request, urlopen
from binascii import b2a_base64

def b64open(url, postdata):
  req = Request(url, b2a_base64(postdata), headers={'Content-Transfer-Encoding': 'base64'})
  return urlopen(req)

conn = b64open("http://211.21.24.43:8080/data","mac=00-0C-F1-56-98-AD")

但是当我运行它时,出现了以下错误:
File "send2.py", line 8
SyntaxError: Non-ASCII character '\xc3' in file send2.py on line 8, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

有人能帮我发送数据到服务器吗?

谢谢你的帮助!


  1. 发布问题时,请使用页面右侧的格式指南。
  2. 请使用大写字母开头,以及用于专有名词,例如“I”。
- S.Lott
你怎么只问了最差的答案? - diegoaguilar
4个回答

26
将编码放在 .py 文件的顶部
例子:
#!/usr/bin/env python
#coding: utf8 
import os
...

这可能是因为您复制/粘贴了某些在您的文本编辑器中不可见的Unicode字符所致。


尽管这个问题一开始有点奇怪,但这是谷歌为我提供的第一个结果,并且这个答案解决了我的问题。谢谢。 - harperville

6

这个解决方案在Ubuntu上适用。

在所有导入语句之前,添加以下语句。

# -*- coding: utf-8 -*-`

对于包含术语'\xe2'的错误,可以采取类似的方法。


1

错误的字符可能是第8行上的“逗号”或“引号”。这可能发生在“Ctrl + C”、“Ctrl + V”期间。 ;) 您可以尝试手动重写这些字符。


-10

您复制并粘贴了带有非ASCII字符的代码。第8行有一个\xc3字符。


2
这只是消息中提供的内容。这是一个解决方案吗?如何解决它? - Andre Pastore
你真的应该解释一下原因,并提供一个解决方案。 - diegoaguilar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接