Gra*_*raf 5 python windows encoding
想象一下,我有以下代码:
# -*- coding: utf-8 -*-
from getpass import getpass
#print u'??????? ??????!'.encode('cp866')
passwd = getpass (u'??????? ??????!'.encode('cp866'))
Run Code Online (Sandbox Code Playgroud)
这是为了要求用户在Windows控制台中输入密码(因此编码为'cp866').用户看到以下提示:"???¤?a?aR?i!" 但如果您使用print取消注释该行,您将看到正确的文本.我已经有一个解决方法,首先制作一个print语句,然后发出带有空提示符的getpass,但我只是想知道我的代码到底出了什么问题,为什么我得到这个结果?一个提示,如果它更清楚:getpass使用msvcrt.putch(char)将字符放在控制台上.