我是这个网站的新手,显然也是python。 我需要向telnet连接发送如下命令: FF€(后跟欧元符号和退货)
(注意:FF应为ASCII,欧元符号与ASCII不同 - > unicode?) 我怎么发这个? 代码如下:
import getpass
import sys
import telnetlib
HOST = "127.0.0.1"
port = "11000"
tn = telnetlib.Telnet(HOST, port)
tn.write('FF\x80')
print(tn.read_all())
非常感谢! HAKI
答案 0 :(得分:0)
这取决于远程系统对您的期望。根据远程端的字符集,有大约10种不同的方法来编码欧元符号。
您必须要求了解远程系统的人告诉您预期的编码。
之后,您可以使用Unicode符号\u20AC
和codecs
模块将其转换为远程端所期望的字符集。
请注意,如果仍使用Python 2(u'...'
),则需要使用Unicode字符串。
[编辑] 远程端似乎是Windows或使用Windows字符集cp1252
(see this question)
所以这应该有效:
t=u'FF\u20acFF\u20ac\r\n'
e=t.encode('cp1252')
tn.write(e)
response = tn.read_all().decode('cp1252')
print(response)
请注意,您必须对发送的任何内容进行编码并对您收到的任何内容进行解码。
另请注意:在Windows上,行结尾为\r\n
。如果发送错误的行结尾,大多数程序都无法正常工作。