Wenn ich in meinem Script
Code: Alles auswählen
print "Buß-und Bettag"
Code: Alles auswählen
draw.text((x,y),"Buß- und Bettag")
Was kann ich tun?
Linux - Kubuntu 9.10 - Python 2.6.4
Code: Alles auswählen
print "Buß-und Bettag"
Code: Alles auswählen
draw.text((x,y),"Buß- und Bettag")
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import Image
import ImageDraw
import ImageFont
import codecs
# Neues Image anlegen und ImageDraw Objekt damit erzeugen.
img = Image.new("RGB", (640, 200))
draw = ImageDraw.Draw(img)
# ImageFont mittels 'arial.ttf' der Windows Fonts (k.a. was Du da unter Linux laden könntest, aber da wird Dir bestimmt etwas einfallen)
font_arial_16_unic = ImageFont.truetype(r'C:\WINDOWS\Fonts\arial.ttf', 16, encoding='unic')
# Nun Deinen Text in das Image mit der so eben erzeugten Schrift schreiben und zum testen anzeigen lassen.
# Wichtig hierbei ist, dass ich dieses Script in UTF-8 abgespeichert habe, folglich der String erst einmal wieder in Unicode decodiert werden muss!
draw.text((5, 5), codecs.decode("Buß- und Bettag", 'UTF-8'), font=font_arial_16_unic)
img.show()
Code: Alles auswählen
text=codecs.decode(text, 'UTF-8')
Das ist "etwas" umständlich. u"Buß- und Bettag" tät es auch, und man muss sich bei Angabe des Encodings nicht wiederholen.Masaru hat geschrieben:Code: Alles auswählen
# Wichtig hierbei ist, dass ich dieses Script in UTF-8 abgespeichert habe, folglich der String erst einmal wieder in Unicode decodiert werden muss! draw.text((5, 5), codecs.decode("Buß- und Bettag", 'UTF-8'), font=font_arial_16_unic)
Code: Alles auswählen
#! /usr/bin/python
# -*- coding: UTF-8 -*-
def sFeiertag():
"""Liefert die Bezeichnung des Feiertags oder einen Leerstring"""
s = u"Buß-und Bettag"
return(s)
if __name__ == '__main__':
s = sFeiertag()
print s
Traceback (most recent call last):
File "test_01.py", line 12, in <module>
print s
UnicodeEncodeError: 'ascii' codec can't encode character u'\xdf' in position 2: ordinal not in range(128)