Python — чтение c stdin
Необходимо перевести файловый дескриптор в неблокирующий режим:
#!/usr/bin/python
import select
import sys
import os
import tty
import fcntl

poller = select.poll()
poller.register(sys.stdin, select.POLLIN)

tty.setcbreak(sys.stdin)

fcntl.fcntl(sys.stdin.fileno(), fcntl.F_SETFL, os.O_NONBLOCK)

while True:
        events = poller.poll(500)
        if events:
                for char in sys.stdin.read():
                        print ord(char)
А если попробовать через codecs? Что-то в таком духе:

import codecs
import locale
import sys

locale.setlocale(locale.LC_ALL, '')

lang, encoding = locale.getdefaultlocale()
sys.stdin = codecs.getreader(encoding)(sys.stdin)

print 'From stdin:', repr(sys.stdin.read())

Можно почитать тут: www.doughellmann.com/PyMOTW/codecs/index.html