On Tue, 22 Feb 2005 19:17:40 -0500
"Isr Gish" <[EMAIL PROTECTED]> wrote:

 
> This part of the error is saying what the problem is.
> 
>    >UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 22: 
> ordinal not in range(128)
>   
> Thatthe ascii codec that's being used can't decode any ascii code above 128. 
> And the code 0xe4 is higher then that.
> You would have to use a different encoding, like msbc.
> If i remmeber correctly you should do something like the following.
> 
> self.nextfile = self.nextfile.encode('msbc')
> Then it should work.
> 
> If it doesn't work try posting what error you get.
> 
> All the best
> Irr 
> 
> 
Thanks for the reply,

it looks to me however that the problem is rather the gettext part; once I 
discovered this problem
I can produce similar errors at other points in my app that *seem* to only 
occur when a gettext string
gets combined with a string that is returned by user input from some Tkinter 
widget. The final
complaint in the traceback is always about a (german) special character in the 
translated gettext string:

##############################################################################
UnicodeDecodeError Exception in Tk callback
  Function: <function <lambda> at 0xb72ec304> (type: <type 'function'>)
  Args: ()
Traceback (innermost last):
  File "/usr/lib/python2.3/site-packages/Pmw/Pmw_1_2/lib/PmwBase.py", line 
1747, in __call__
    return apply(self.func, args)
  File "/usr/lib/python2.3/site-packages/Pmw/Pmw_1_2/lib/PmwDialog.py", line 
153, in <lambda>
    command=lambda self=self, name=name: self._doCommand(name))
  File "/usr/lib/python2.3/site-packages/Pmw/Pmw_1_2/lib/PmwDialog.py", line 
132, in _doCommand
    return command(name)
  File "/usr/local/share/phonoripper-0.6.2/widgets/FileSelectDialog.py", line 
206, in go
    if not self.ok():
  File "/usr/local/share/phonoripper-0.6.2/widgets/FileSelectDialog.py", line 
201, in ok
    return self.fo_handler.create_ok(self.full_path)
  File "/usr/local/share/phonoripper-0.6.2/FileOperationHandler.py", line 43, 
in create_ok
    message=_('File already exists:\n"%s"\nDo you want to overwrite it?') % 
filename)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xfc in position 19: 
ordinal not in range(128)

##############################################################################

The german translation of 'File already exists:\n"%s"\nDo you want to overwrite 
it?' contains a special
character ('\xfc'), filename is of course simply the complete path to a file as 
it is returned by a "Save as..."
dialog box. I get this error for some reason if I choose '\xe4.wav' as basename 
for "filename" but not
if I choose 'A\xe4.wav' . Like I said in my first post, there are no errors if 
I remove the german .mo file,
so gettext uses the english strings. 

What seems really weird to me here is that it looks like both the translated 
gettext string and the special
characters in my "filename" variable *can* be decoded, but not both at a time - 
but only under (rare) circumstances
( setting "filename" to "/somepath/A\xe4.wav" works but "/somepath/\xe4.wav" 
not).

I'm really lost here, so any further hints are very appreciated.

Thanks and best regards

Michael

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to