1
我有一段python代碼,它將條目從bash歷史注入到命令提示符中。通過termios.TIOCSTI注入Unicode字符
一切工作完美,直到我切換到Python 3. 現在德國Umlaute出現錯誤。
例如。
python3 console_test.py mööp
結果:
$ m�
下面是相關代碼:
import fcntl
import sys
import termios
command = sys.argv[1]
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~termios.ECHO # disable echo
termios.tcsetattr(fd, termios.TCSANOW, new)
for c in command:
fcntl.ioctl(fd, termios.TIOCSTI, c)
termios.tcsetattr(fd, termios.TCSANOW, old)
我試圖編碼輸入爲UTF-8,但是這給了我:
OSError: [Errno 14] Bad address