Seite 1 von 1

Codierungsproblem

Verfasst: Donnerstag 5. November 2009, 16:06
von mathi
Hallo,

ich lasse in einem TextControl u.a. auch griechische Buchstaben ausgeben.

Code:

Code: Alles auswählen

        self.Ausgabetext = wx.TextCtrl(self, 1, u"", style = wx.TE_READONLY |wx.TE_MULTILINE)  #|wx.BORDER_RAISED) 
        ausgabebox.Add(self.Ausgabetext, proportion = 1, flag = wx.ALL | wx.EXPAND, border = 2) 
...
...

                self.Ausgabe.Ausgabetext.WriteText(u'cot \u03d1=%s\n' % format(self.cott,'%0.3f'))#theta
                self.Ausgabe.Ausgabetext.WriteText(u'\u03d1=%s °\n' % format(self.thetaw,'%0.1f'))
Wenn ich dann mit der Maus kopiere und in Word einfüge, erscheint
cot ϑ=3,000
ϑ=18,4 °
so soll es sein.

wenn ich das aber in die Zwischenablage über

Code: Alles auswählen

    self.text=self.Ausgabe.Ausgabetext.GetValue()
    win32clipboard.OpenClipboard() 
    win32clipboard.EmptyClipboard() 
    win32clipboard.SetClipboardText(self.text) 
    win32clipboard.CloseClipboard()
in Word einfüge, erscheint:
cot ?=3,000
?=18,4 °

wie kann ich das verhindern??

Verfasst: Freitag 6. November 2009, 14:34
von mkesper
Du musst dem Clipboard sagen, dass es Unicode empfängt, schau mal, ob dich das weiterbringt: http://docs.activestate.com/activepytho ... _meth.html

Verfasst: Freitag 6. November 2009, 19:39
von mathi
vielen Dank, das war genau auf den Punkt,

folgende Lösung bringt das gewünschte ergebnis:


Code: Alles auswählen

    t = win32clipboard.CF_UNICODETEXT
    self.text=self.Ausgabe.Ausgabetext.GetValue()
    win32clipboard.OpenClipboard() 
    win32clipboard.EmptyClipboard() 
    win32clipboard.SetClipboardData(t, self.text)
    win32clipboard.CloseClipboard()