我遇到getch()
函數的curses
函數庫存在問題。 假設我們有以下程序:getch()返回錯誤字符
import curses
def main(stdscr):
while 1:
c = stdscr.getch()
stdscr.addstr(chr(c) + ": " + str(c) + "\n")
curses.wrapper(main)
讓我們來運行它,並輸入以下文字:a
,<backspace>
,œ
然後輸出爲:
a: 97
ć: 263
Å: 197
正如你看到的, a
字符采取正確。 但是,其他人不是。我只想獲得退格'\b'
和Unicode字符œ
,但我們得到了別的東西。
爲什麼getch()
表現這種方式,我如何得到所需的行爲?
編輯:
我要強調這是不打印字符的問題,但隨着閱讀的字符。即運行stdscr.addstr('œ')
確實打印œ
。
哪個版本的Python? – hivert
版本是python 3.3 –
看起來像編碼之間的不良交互 - 您的特定於語言環境的變量設置爲什麼,並且您是否在Python代碼中執行任何特定於語言環境的設置? – twalberg