Donn wrote: > Trying to open a ttf file with a non-standard character in it (u'\xe5') > causes an error, no matter what I pass to encoding:
> self.font = _imagingft.getfont(file, size, index, encoding) > UnicodeEncodeError: 'ascii' codec can't encode character u'\xe5' in position > 66: ordinal not in range(128) > > Is there something I'm doing wrong, or is this a bug? a glitch, at least. the _imagingft driver appears to use Python's default encoding, rather than the filename encoding. should be relatively easy to fix, I think, but in the meantime, you'll have to work around this by making a temporary copy of the file with a made-up name if this happens: try: font = ImageFont.truetype(filename, ...) altname = None except UnicodeEncodeError: # create a suitable alternative name (e.g. using the tempfile # module) altname = ... shutil.copy(filename, altname) # could use linking on Unix font = ImageFont.truetype(altname, ...) ... use the font object ... if altname: os.remove(altname) </F> _______________________________________________ Image-SIG maillist - Image-SIG@python.org http://mail.python.org/mailman/listinfo/image-sig