UTF-8 Support of Curses in Python 2.5

S

shrek2099

Hi All,

Recently I ran into a problem with UTF-8 surrport when using curses
library in python 2.5 in Fedora 7. I found out that the program using
curses cannot print out unicode characters correctly on UTF-8 enabled
console. I googled around and got an impression that the reason for
this problem is that python is linked with libcurses library instead
of libcursesw. The latter one is said to be able to solve this
problem. Has anybody tried this? How to manually let python use
libcursesw? Thanks a lot!

Here is a test program:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import curses
def keyloop(stdscr):
# Clear the screen and display the menu of keys
stdscr_y, stdscr_x = stdscr.getmaxyx()
menu_y = (stdscr_y-3)-1
str = u'This is my first curses python program. Press \'q\' to
exit. (¤£™)'
stdscr.addstr(menu_y, 4, str.encode('utf-8'))
xpos = stdscr_x / 2
ypos = stdscr_y / 2
while (1):
stdscr.move(ypos, xpos)
c = stdscr.getch()
if 0 < c < 256:
c = chr(c)
if c in 'Qq': break
else: pass
elif c == curses.KEY_UP and ypos > 0: ypos -= 1
elif c == curses.KEY_DOWN and ypos < stdscr_y - 1: ypos += 1
elif c == curses.KEY_LEFT and xpos > 0: xpos -= 1
elif c == curses.KEY_RIGHT and xpos < stdscr_x - 1: xpos += 1
else: pass
def main(stdscr):
keyloop(stdscr)
if __name__ == '__main__':
curses.wrapper(main)
 
A

Andrey

Yes, it does solve the problem.
Compile python with ncursesw library.
Btw Ubuntu 7 has it "out of the box".
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top