作者icycandle (你有压力,我有压力)
看板Python
标题Re: 新手想写登入BBS的程式(Python 3)
时间Tue Nov 19 19:42:23 2013
我习惯的工作环境是 python2.7 @ Unix-like OS,不过就来抛砖引玉一下。
首行的「# -*- coding: big5 -*-」是用来跟 interpreter 沟通用的,
换言之,只是让interpreter可以看懂你的source code。这跟程式的行为
(字串到底是用何种编码)应该没有关系。
既然是 python3 预设的字串应该一律是 unicode。
如果要输出 Big5 的话,应该可以试试:
"请输入代号".encode('cp950')
cp950 基本上就是微软的Big5编码实作。
※ 引述《peanut97 (花生)》之铭言:
: 我又做了新的测试:
: 程式码:
: ===============================================
: # -*- coding: big5 -*-
: import telnetlib
: tn = telnetlib.Telnet('ptt.cc')
: s = tn.read_until(b"ptt3")
: print(s)
: ===============================================
: 会印出ptt的首页画面
: 但改成read_until(b"请输入代号"),就不行,程式码:
: ===============================================
: # -*- coding: big5 -*-
: import telnetlib
: tn = telnetlib.Telnet('ptt.cc')
: s = tn.read_until(b"请输入代号")
: print(s)
: ===============================================
: 会显示错误:『bytes can only contain ASCII literal characters.』
: 看read_until的文件,他接受的参数是byte string,所以应把字串转成byte string
: 但看程式码第一行是用big5
: 是不是指字串:『请输入代号』已经是big5编码
: 所以要想办法把big5 转成byte string ?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.171.174.223
※ 编辑: icycandle 来自: 1.171.174.223 (11/19 19:43)