python wx unicode encoding



我对WX和Python有问题,这似乎是一个Unicode。

我正在使用便携式Python 2.7.2.1和WX-2.8-msw-unicode。

我在失败点处的Python代码是此说明:

listbox.AppendText("n  " + dparser.parse(t['created_at']).strftime('%H-%M-%S') + "    " +t['text'] + "n")

t ['text']

有一个值: " rt @webbiebmx:" @alexcolebornbmx:http://t.co/cn6zso69•watch this and #retweet"

在我正在运行的python显示的DOS窗口中打印时显示为:

'rt @webbiebmx: xe2 x80 x9c @alexcolebornbmx:http://t.co/cn6zso69 xe2 x80 x9dwatch这个#retweet'

追溯是:

trackback(最近的最新通话):文件" myprogs search_db_dev.py", 第713行,在Onsubmit中 self.tofield.getlineText(0))文件" f: portable portable python 2.7.2.1 app myprogs myprogs process_form_form2_dev.py",l Ine 575,in Display_tweets

    listbox.AppendText("n  " + dparser.parse(t['created_at']).strftime('%H-%M-%
S') + "    " +t['text'] + "n")

文件" f: portable portable python 2.7.2.1 app lib site-packages wx-2.8-msw-uni code wx_controls.py",第1850行,在appendtext

   return _controls_.TextCtrl_AppendText(*args, **kwargs)

文件" f: portable portable python 2.7.2.1 app lib engodings cp1252.py",第1 5行,in

decode return codecs.charmap_decode(input,errors,decoding_table)

UnicodedeDecodeError:'Charmap'编解码器无法解码字节0x9d。 73:chara cter地图到未定义的

unicodedecodeerror似乎发生在正确的双引号标记的末尾( xe2 x80 x9d),但我看不出为什么。我会感谢任何帮助。

这可能是一个简单的编码问题,恐怕

对CP1252的引用时,我看着追溯时扔了我,因为文本是UTF8(正如人们在处理Tweets的文本时可能期望的那样。)左侧的UTF8序列( xe2 x80 x9c)似乎并没有引起问题,但似乎在第二个HEX序列中的 Xe2之后有一个空间,这会使它不正确地从UTF8解码。当我删除该空间时,解码问题就会消失。因此,您已经有一些不良的UTF8,我不确定当您从原始源收到try语句中的明确解码外,您将如何防止其他措施。这有意义吗?

是的,这是一个简单的编码问题。

您不明白为什么字体不区分u'”'u'"'的原因。前者是一个卷曲的封闭引号,即UTF-8中的'xe2x80x9d'。当您在编辑器中编辑文本文件(如MS Word)时,这通常会发生。

,但是您现在发现问题是很好的。否则,一切似乎都可以使用,直到您将脚本交给了一些中国用户……

无论如何,这里的问题是您有一些代码存储UTF-8字符串,以及其他一些试图访问它们的代码,就像它们在默认编码中一样(您的Windows OEM CharSet)。没有看到更多代码,很难确定您到底做错了什么,但是希望这足以让您跟踪。

最新更新