I have a piece of python code that injects entries from the bash history into the command prompt.
Everything worked perfectly until I switched to Python 3. Now German Umlaute appear wrong.
eg.
python3 console_test.py mööp
results in:
$ m�
Here's the relevant code:
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)
I tried encoding the input to utf-8 but that gave me:
OSError: [Errno 14] Bad address