pexpect and unicode strings
half.italian at gmail.com
Sat Sep 5 04:32:48 CEST 2009
On Sep 4, 7:11 pm, Mathew Oakes <mathew.oa... at memechine.org> wrote:
> Is there anything that can be done to make pexpect spawns send unicode lines?
> In this example they are just middot characters, but this process
> needs to be able to handle languages in other character sets.
> >>> spokentext = u'Nation . Search the FOX Nation . czars \xb7 Health care \xb7 town halls \xb7 tea parties ...'
> >>> p = pexpect.spawn('festival')
> >>> p.expect('festival> ')
> >>> p.sendline( spokentext )
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File "/usr/lib/python2.6/dist-packages/pexpect.py", line 961, in sendline
> n = self.send(s)
> File "/usr/lib/python2.6/dist-packages/pexpect.py", line 953, in send
> c = os.write(self.child_fd, s)
> UnicodeEncodeError: 'ascii' codec can't encode character u'\xb7' in
> position 41: ordinal not in range(128)
> Help appreciated!
Did you trying changing line 953 in the pexpect file to:
c = os.write(self.child_fd, s.encode("utf-8"))
and then run your code again?
Worth a shot. I have no good way of trying it out here.
More information about the Python-list