У меня проблема с wxpython и его элементом управления расширенным текстом, когда я пытаюсь вставить символы Юникода ... \ xb2 печатает апекс '2', '\ u2074' должен печатать апекс '4' ...
редактировать: я использую Windows Vista ... и я попытался "кодирование cp1252" и "UTF-8", но с тем же результатом ...
2edit:
на 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>
так ... что мне делать? Мне действительно нужно показать это ...
спасибо всем !!