использование символов Юникода с wxPython

У меня проблема с wxpython и его элементом управления форматированным текстом, когда я пытаюсь вставить символы Юникода ... \ xb2 печатает вершину '2', '\ u2074 'должен напечатать вершину' 4 '...
edit: я использую Windows Vista ... и я пробовал 'coding cp1252' и 'utf-8', но с тем же результатом ...
2редактировать: на Vista он вылетает, на xp он показывает странный квадрат (я думаю, это когда компьютер не распознает символ ...)

вот исходный код:

from __future__ import unicode_literals

import wx
import wx.richtext as rt

class Trial(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, 'Prova', 
                size=(400, 400))

        self.rtc = rt.RichTextCtrl(self, style=wx.VSCROLL|wx.HSCROLL|wx.NO_BORDER)
        wx.CallAfter(self.rtc.SetFocus)
        #self.rtc.Freeze()
        self.rtc.BeginFontSize(14)
        self.rtc.WriteText('hei!\xb2') #alright
        self.rtc.WriteText('hi\u2074!')#crash
        self.rtc.EndFontSize()
        
       
if __name__ == '__main__':
    app = wx.PySimpleApp()
    frame = Trial()
    frame.Show()
    app.MainLoop()

но когда я пытаюсь запустить его, он вылетает ...

Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    frame = display.Trial()
  File "C:\Users\expert\Desktop\display.py", line 15, in __init__
    self.rtc.WriteText('hi\u2074!')
  File "C:\Python26\lib\site-packages\wx-2.8-msw-ansi\wx\richtext.py", line 2507, in WriteText
    return _richtext.RichTextCtrl_WriteText(*args, **kwargs)
  File "C:\Python26\lib\encodings\cp1252.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode character u'\u2074' in position 4: character maps to <undefined>

итак ... что мне делать? Мне действительно нужно это показать ...

Всем спасибо !!

1
задан Josh Crozier 16 December 2015 в 03:36
поделиться