2006年05月30日 星期二 16:52
*>>> a = """[u"0:一态 1:二态 2:三态", u"按下时声效", u"光标在上面时"]""" >>> b = eval(a) >>> b [u'0:\xd2\xbb\xcc\xac 1:\xb6\xfe\xcc\xac 2\xa3\xba\xc8\xfd\xcc\xac', u'\xb0\xb4\xcf\xc2\xca\xb1\xc9\xf9\xd0\xa7', u'\xb9\xe2\xb1\xea\xd4\xda\xc9\xcf\xc3\xe6\xca\xb1'] >>> print b[0] 0:һ̬ 1:¶þ̬ 2£ºÈý̬ *为什么是乱码,在unicode版本的wxpython中的TextCtrl中显示的也是乱码,如何才能正常显示?* * -- http://www.flyaflya.com powered by pygame+python -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060530/85ecabf7/attachment.htm
2006年05月30日 星期二 17:05
我猜是Eval的时候出了问题吧,这样是正常的: >>> a = """['%s', '%s', '%s']"""%(u"0:一态 1:二态 2:三态", u"按下时声效", u"光标在上面时") >>> a u"['0:\u4e00\u6001 1:\u4e8c\u6001 2\uff1a\u4e09\u6001', '\u6309\u4e0b\u65f6\u58f0\u6548', '\u5149\u6807\u5728\u4e0a\u9762\u65f6']" >>> b = eval(a) >>> b[0] '0:\xe4\xb8\x80\xe6\x80\x81 1:\xe4\xba\x8c\xe6\x80\x81 2\xef\xbc\x9a\xe4\xb8\x89\xe6\x80\x81' >>> print b[0] 0:涓€鎬?1:浜屾€?2锛氫笁鎬 >>> print b[0].decode('utf-8') 0:一态 1:二态 2:三态 >>> print b[1].decode('utf-8') 按下时声效 其实就是a用""" """来定义的时候,没有用unicode编码,所以我把这部分单独拿出来了。拼接字符串a的时候,数组里存储的已经是编码过的utf-8字符串,或者这样也可以: >>> a = u"""[u"0:一态 1:二态 2:三态", u"按下时声效", u"光标在上面时"]""" >>> b = eval(a) >>> b[0] u'0:\u4e00\u6001 1:\u4e8c\u6001 2\uff1a\u4e09\u6001' >>> print b[0] 0:一态 1:二态 2:三态 >>> print b[1] 按下时声效 这等于a整体编码过,执行eval的时候,b就可以得到解码的内容。 2006/5/30, flyaflya <flyaflya at gmail.com>: > > *>>> a = """[u"0:一态 1:二态 2:三态", u"按下时声效", u"光标在上面时"]""" > >>> b = eval(a) > >>> b > [u'0:\xd2\xbb\xcc\xac 1:\xb6\xfe\xcc\xac 2\xa3\xba\xc8\xfd\xcc\xac', > u'\xb0\xb4\xcf\xc2\xca\xb1\xc9\xf9\xd0\xa7', > u'\xb9\xe2\xb1\xea\xd4\xda\xc9\xcf\xc3\xe6\xca\xb1'] > >>> print b[0] > 0:һ̬ 1:¶þ̬ 2£ºÈý̬ > > *为什么是乱码,在unicode版本的wxpython中的TextCtrl中显示的也是乱码,如何才能正常显示?* > * > -- > http://www.flyaflya.com powered by pygame+python > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > > -- 欢迎访问: http://blog.csdn.net/ccat 刘鑫 March.Liu -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060530/24feaee9/attachment.html
2006年05月30日 星期二 17:16
这也许应该算python的bug吧。我在调用subprocess时也遇到过相似的问题。我把字符串传给一个程序当参数,忙了很久才发现原来应该传的时gbk编码的,结果传的是文件使用的utf-8编码的参数。也许eval需要的就一定是gbk编码的字符串! 2006/5/30, 刘鑫 <march.liu at gmail.com>: > 我猜是Eval的时候出了问题吧,这样是正常的: > >>> a = """['%s', '%s', '%s']"""%(u"0:一态 1:二态 2:三态", u"按下时声效", u"光标在上面时") > >>> a > u"['0:\u4e00\u6001 1:\u4e8c\u6001 2\uff1a\u4e09\u6001', > '\u6309\u4e0b\u65f6\u58f0\u6548', > '\u5149\u6807\u5728\u4e0a\u9762\u65f6']" > >>> b = eval(a) > >>> b[0] > '0:\xe4\xb8\x80\xe6\x80\x81 1:\xe4\xba\x8c\xe6\x80\x81 > 2\xef\xbc\x9a\xe4\xb8\x89\xe6\x80\x81' > >>> print b[0] > 0:涓€鎬?1:浜屾€?2锛氫笁鎬 > >>> print b[0].decode('utf-8') > > 0:一态 1:二态 2:三态 > >>> print b[1].decode('utf-8') > 按下时声效 > > 其实就是a用""" > """来定义的时候,没有用unicode编码,所以我把这部分单独拿出来了。拼接字符串a的时候,数组里存储的已经是编码过的utf-8字符串,或者这样也可以: > >>> a = u"""[u"0:一态 1:二态 2:三态", u"按下时声效", u"光标在上面时"]""" > >>> b = eval(a) > >>> b[0] > u'0:\u4e00\u6001 1:\u4e8c\u6001 2\uff1a\u4e09\u6001' > >>> print b[0] > > 0:一态 1:二态 2:三态 > >>> print b[1] > 按下时声效 > > 这等于a整体编码过,执行eval的时候,b就可以得到解码的内容。 > > 2006/5/30, flyaflya <flyaflya at gmail.com>: > > > > >>> a = """[u"0:一态 1:二态 2:三态", u"按下时声效", u"光标在上面时"]""" > >>> b = eval(a) > >>> b > [u'0:\xd2\xbb\xcc\xac 1:\xb6\xfe\xcc\xac 2\xa3\xba\xc8\xfd\xcc\xac', > u'\xb0\xb4\xcf\xc2\xca\xb1\xc9\xf9\xd0\xa7', > u'\xb9\xe2\xb1\xea\xd4\xda\xc9\xcf\xc3\xe6\xca\xb1'] > >>> print b[0] > 0:һ̬ 1:¶þ̬ 2£ºÈý̬ > > 为什么是乱码,在unicode版本的wxpython中的TextCtrl中显示的也是乱码,如何才能正常显示? > > -- > http://www.flyaflya.com powered by pygame+python > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to > python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to > python-chinese-request at lists.python.cn > Detail Info: > http://python.cn/mailman/listinfo/python-chinese > > > > > -- > 欢迎访问: > http://blog.csdn.net/ccat > > 刘鑫 > March.Liu > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to > python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to > python-chinese-request at lists.python.cn > Detail Info: > http://python.cn/mailman/listinfo/python-chinese > >
2006年05月30日 星期二 17:17
不很理解,不过在"""前加个u确实可以,多谢了。 虽然python用了很久,unicode一直不很明白。 On 5/30/06, 刘鑫 <march.liu at gmail.com> wrote: > > 我猜是Eval的时候出了问题吧,这样是正常的: > >>> a = """['%s', '%s', '%s']"""%(u"0:一态 1:二态 2:三态", u"按下时声效", u"光标在上面时") > >>> a > u"['0:\u4e00\u6001 1:\u4e8c\u6001 2\uff1a\u4e09\u6001', > '\u6309\u4e0b\u65f6\u58f0\u6548', '\u5149\u6807\u5728\u4e0a\u9762\u65f6']" > >>> b = eval(a) > >>> b[0] > '0:\xe4\xb8\x80\xe6\x80\x81 1:\xe4\xba\x8c\xe6\x80\x81 > 2\xef\xbc\x9a\xe4\xb8\x89\xe6\x80\x81' > >>> print b[0] > 0:涓€鎬?1:浜屾€?2锛氫笁鎬 > >>> print b[0].decode('utf-8') > > 0:一态 1:二态 2:三态 > >>> print b[1].decode('utf-8') > 按下时声效 > > 其实就是a用""" > """来定义的时候,没有用unicode编码,所以我把这部分单独拿出来了。拼接字符串a的时候,数组里存储的已经是编码过的utf-8字符串,或者这样也可以: > > >>> a = u"""[u"0:一态 1:二态 2:三态", u"按下时声效", u"光标在上面时"]""" > >>> b = eval(a) > >>> b[0] > u'0:\u4e00\u6001 1:\u4e8c\u6001 2\uff1a\u4e09\u6001' > >>> print b[0] > > 0:一态 1:二态 2:三态 > >>> print b[1] > 按下时声效 > > 这等于a整体编码过,执行eval的时候,b就可以得到解码的内容。 > > 2006/5/30, flyaflya <flyaflya at gmail.com>: > > > > *>>> a = """[u"0:一态 1:二态 2:三态", u"按下时声效", u"光标在上面时"]""" > >>> b = eval(a) > >>> b > [u'0:\xd2\xbb\xcc\xac 1:\xb6\xfe\xcc\xac 2\xa3\xba\xc8\xfd\xcc\xac', > u'\xb0\xb4\xcf\xc2\xca\xb1\xc9\xf9\xd0\xa7', > u'\xb9\xe2\xb1\xea\xd4\xda\xc9\xcf\xc3\xe6\xca\xb1'] > >>> print b[0] > 0:һ̬ 1:¶þ̬ 2£ºÈý̬ > > *为什么是乱码,在unicode版本的wxpython中的TextCtrl中显示的也是乱码,如何才能正常显示?* > * > -- > http://www.flyaflya.com powered by pygame+python > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > > > > > -- > 欢迎访问: > http://blog.csdn.net/ccat > > 刘鑫 > March.Liu > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > > -- http://www.flyaflya.com powered by pygame+python -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060530/fe07961b/attachment-0001.htm
2006年05月30日 星期二 17:20
不算bug,Python的内核编码取决于具体的操作系统,如果想跨平台跨语种传递信息,就手动编码,这个应该说是一种设计方式。 2006/5/30, 3751 <lwm3751 at gmail.com>: > > > 这也许应该算python的bug吧。我在调用subprocess时也遇到过相似的问题。我把字符串传给一个程序当参数,忙了很久才发现原来应该传的时gbk编码的,结果传的是文件使用的utf-8编码的参数。也许eval需要的就一定是gbk编码的字符串! > -- 欢迎访问: http://blog.csdn.net/ccat 刘鑫 March.Liu -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060530/ba477c33/attachment.html
2006年05月30日 星期二 17:21
unicode就是一种信息打包的方式,把字符串按照unicode的字符集转换成一串数字,然后交给目标程序,由它再根据unicode的编码重新翻译成字符串。这样理解也许可以对你有帮助:) 2006/5/30, flyaflya <flyaflya at gmail.com>: > > 不很理解,不过在"""前加个u确实可以,多谢了。 > 虽然python用了很久,unicode一直不很明白。 > > > On 5/30/06, 刘鑫 < march.liu at gmail.com> wrote: > > > > 我猜是Eval的时候出了问题吧,这样是正常的: > > >>> a = """['%s', '%s', '%s']"""%(u"0:一态 1:二态 2:三态", u"按下时声效", > > u"光标在上面时") > > >>> a > > u"['0:\u4e00\u6001 1:\u4e8c\u6001 2\uff1a\u4e09\u6001', > > '\u6309\u4e0b\u65f6\u58f0\u6548', '\u5149\u6807\u5728\u4e0a\u9762\u65f6']" > > >>> b = eval(a) > > >>> b[0] > > '0:\xe4\xb8\x80\xe6\x80\x81 1:\xe4\xba\x8c\xe6\x80\x81 > > 2\xef\xbc\x9a\xe4\xb8\x89\xe6\x80\x81' > > >>> print b[0] > > 0:涓€鎬?1:浜屾€?2锛氫笁鎬 > > >>> print b[0].decode('utf-8') > > > > 0:一态 1:二态 2:三态 > > >>> print b[1].decode('utf-8') > > 按下时声效 > > > > 其实就是a用""" > > """来定义的时候,没有用unicode编码,所以我把这部分单独拿出来了。拼接字符串a的时候,数组里存储的已经是编码过的utf-8字符串,或者这样也可以: > > > > >>> a = u"""[u"0:一态 1:二态 2:三态", u"按下时声效", u"光标在上面时"]""" > > >>> b = eval(a) > > >>> b[0] > > u'0:\u4e00\u6001 1:\u4e8c\u6001 2\uff1a\u4e09\u6001' > > >>> print b[0] > > > > 0:一态 1:二态 2:三态 > > >>> print b[1] > > 按下时声效 > > > > 这等于a整体编码过,执行eval的时候,b就可以得到解码的内容。 > > > > 2006/5/30, flyaflya <flyaflya at gmail.com>: > > > > > > *>>> a = """[u"0:一态 1:二态 2:三态", u"按下时声效", u"光标在上面时"]""" > > >>> b = eval(a) > > >>> b > > [u'0:\xd2\xbb\xcc\xac 1:\xb6\xfe\xcc\xac 2\xa3\xba\xc8\xfd\xcc\xac', > > u'\xb0\xb4\xcf\xc2\xca\xb1\xc9\xf9\xd0\xa7', > > u'\xb9\xe2\xb1\xea\xd4\xda\xc9\xcf\xc3\xe6\xca\xb1'] > > >>> print b[0] > > 0:һ̬ 1:¶þ̬ 2£ºÈý̬ > > > > *为什么是乱码,在unicode版本的wxpython中的TextCtrl中显示的也是乱码,如何才能正常显示?* > > * > > -- > > http://www.flyaflya.com powered by pygame+python > > > > _______________________________________________ > > python-chinese > > Post: send python-chinese at lists.python.cn > > Subscribe: send subscribe to python-chinese-request at lists.python.cn > > Unsubscribe: send unsubscribe to > > python-chinese-request at lists.python.cn > > Detail Info: http://python.cn/mailman/listinfo/python-chinese > > > > > > > > > > -- > > 欢迎访问: > > http://blog.csdn.net/ccat > > > > 刘鑫 > > March.Liu > > > > _______________________________________________ > > python-chinese > > Post: send python-chinese at lists.python.cn > > Subscribe: send subscribe to python-chinese-request at lists.python.cn > > Unsubscribe: send unsubscribe to > > python-chinese-request at lists.python.cn > > Detail Info: http://python.cn/mailman/listinfo/python-chinese > > > > > > > -- > http://www.flyaflya.com powered by pygame+python > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > > -- 欢迎访问: http://blog.csdn.net/ccat 刘鑫 March.Liu -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060530/cb748594/attachment.htm
2006年05月30日 星期二 17:32
"unicode就是一种信息打包的方式"这种说法很特别,第一次见到^_^ .NET跟JAVA的字符串使用的是unicode倒是避免了不少麻烦。
Zeuux © 2025
京ICP备05028076号