我正在尝试使用HTTP将数据发送到我的Python服务器。
我的JavaScript代码:
xmlHttp = new XMLHttpRequest();
xmlHttp.open("POST", url, true);
xmlHttp.send(String.fromCharCode(0xf5));
我的Python代码:
#sock is a socket object
header = readline(sock)
contl = 0
while(len(header) > 0):
header = readline(sock)
dat = header.split(': ')
if(len(dat) >= 2):
if(dat[0] == 'Content-Length'):
contl = int(float(dat[1]))
print sock.recv(contl)
readline函数:
def readLine(sock):
s = ""
while(True):
a = sock.recv(1)
if(len(a) < 1):
return s
elif(a == '\n'):
return s
elif(a == '\r'):
b = sock.recv(1)
if(b == '\n'):
return s
else:
s += a + b
else:
s += a
而不是我的Python代码打印\xf5
,它打印\xc3\xb5
。有什么我想念的吗?
答案 0 :(得分:2)
\xc3\xb5
是U + 00F5的UTF-8表示
>>> u'\xf5'.encode('utf-8')
'\xc3\xb5'
您可以使用str.decode
(Python 3.x中的bytes.decode
)将其转换回来:
>>> b'\xc3\xb5'.decode('utf-8')
u'\xf5'