使用Python curses将UTF8字符写入屏幕的最后位置

时间:2017-01-29 14:25:53

标签: python-3.x utf-8 curses python-curses

如何使用Python的curses模块将UTF8字符写入屏幕的最后位置(右下角)?

这项任务最初可能会直截了当,但并非如此。首先,Python 2.x是使用curses输出UTF-8的incapable,所以我们在这里假设Python 3.x.有两个显而易见的候选人:

screen.insch(lines - 1, columns - 1, u"\u00a9")

这会产生OverflowError: byte doesn't fit in chtype。游民。怎么样:

screen.addch(lines - 1, columns - 1, u"\u00a9")

虽然这有效,但它也会滚动屏幕。所以我们实际写到了倒数第二行的最后一列。 仍然是最后一行的最后一列,没有我们的角色。

对于大多数职位,addch工作得很好,但不是最后一个。 insch看起来只是因为UTF8而被打破。

1 个答案:

答案 0 :(得分:1)

这很简单:

  • 使用scrollok
  • 关闭滚动
  • 移至右下角
  • 使用addch
  • 添加字符
  • 捕获(并忽略)由于移动经过右下角失败而导致的异常。

ncurses在插入时做了必要的玩杂耍......