※ 引述《laiDark (C)》之铭言:
: 错误讯息截图:https://imgur.com/Zw5wXnn
你的错误讯息告诉你,这个错误发生于 client.py 的 1117 行︰
self._output(request.encode('ascii'))
当 request 以 ascii encode 时发生错误,因为它包含非 ascii 的字符。
这个错误和你用哪家 cmd、哪个作业系统没有关系,单纯是因为你在 URL 里
加入了非 ascii 的字符造成的。
你贴的 stackoverflow 问题也和这无关(该问题本身也有些意义不明),
并且该问题内使用的 Python 版本还是 2.x,跟你的状况不同。
由于你没有贴 quote 相关的程式码,只能从你 quote 的结果来猜测问题在哪。
quote 输出为︰
"%C2%83L%C2%83%C2%93%C2%83A%C2%83C1"
先 unquote︰
"\x83L\x83\x93\x83A\x83C1"
这里就能很明显看出来你把一串 binary 资料丢给 quote 了。
转成 bytes 并以 shift-jis 进行 decode︰
"\x83L\x83\x93\x83A\x83C1".encode("latin-1").decode("shift-jis")
得到的结果就是︰
'キンアイ1'
结论大概就是,你在一开始拿到的内容就错了,而且内容是以 latin-1 编码。
这也符合你贴出来的错误︰
'ascii' codec can't encode character '\x83'