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

4 投票
4 回答
15298 浏览
提问于 2025-04-15 21:19

如何将数据发送到服务器呢?

比如说,我已经获取了一个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

有没有人能帮我把数据发送到服务器呢?

提前谢谢大家!

4 个回答

6

这个解决方案在我的Ubuntu系统上有效。

在所有导入语句之前,最开始加上以下这句话。

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

对于出现'\xe2'这个错误的情况,可以用类似的方法处理。

26

把编码放在.py文件的最上面

比如:

#!/usr/bin/env python
#coding: utf8 
import os
...

这可能是因为你复制粘贴了一些在文本编辑器里看不见的unicode字符。

-10

你复制粘贴的代码里有一些非ASCII字符。第8行有一个\xc3字符。

撰写回答