2010-04-07 87 views
2

數據如何發送到服務器?非ASCII字符在調用URL時Python中出現語法錯誤

例如,我有獲取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 

任何人都可以幫助我發送數據到服務器?

在此先感謝

+0

1.發佈問題時,請使用頁面右側的格式指南。 2.請用大寫字母開始句子和專有名詞,如「I」。 – 2010-04-07 10:27:08

+0

你怎麼能問最糟糕的答案? – diegoaguilar 2014-03-10 14:42:32

回答

-9

您已複製並粘貼帶有非ASCII字符的代碼。你對線的\xc3字符8

+2

這正是郵件中給出的內容。這是一個解決方案?如何解決? – apast 2013-04-02 22:50:50

+0

你真的應該解釋它的原因,所以一個解決方案 – diegoaguilar 2014-03-10 14:42:13

24

把編碼在.py文件的頂部

例如:

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

這可能是因爲你複製/粘貼一些Unicode字符不是在您的文本編輯器中可見。

+0

儘管問題有點奇怪開始,這是谷歌給我的第一個問題,我的問題,這是解決我的問題的答案。謝謝。 – harperville 2014-06-17 19:57:42

1

不正確的字符可能是第8行的「逗號」或「引號」。它可能發生在「Ctrl + C」,「Ctrl + V」期間。 ;)你可以嘗試手動重寫這些字符。

5

該解決方案適用於Ubuntu。

在所有導入語句開頭處添加以下語句。

​​

與術語'\xe2'錯誤相似的方法。

相關問題