Python论坛  - 讨论区

标题:[python-chinese] 关于unicode

2006年05月30日 星期二 16:52

flyaflya flyaflya at gmail.com
Tue May 30 16:52:49 HKT 2006

*>>> 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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月30日 星期二 17:05

刘鑫 march.liu at gmail.com
Tue May 30 17:05:28 HKT 2006

我猜是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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月30日 星期二 17:16

3751 lwm3751 at gmail.com
Tue May 30 17:16:30 HKT 2006

这也许应该算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
>
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月30日 星期二 17:17

flyaflya flyaflya at gmail.com
Tue May 30 17:17:39 HKT 2006

不很理解,不过在"""前加个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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月30日 星期二 17:20

刘鑫 march.liu at gmail.com
Tue May 30 17:20:15 HKT 2006

不算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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月30日 星期二 17:21

刘鑫 march.liu at gmail.com
Tue May 30 17:21:40 HKT 2006

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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年05月30日 星期二 17:32

3751 lwm3751 at gmail.com
Tue May 30 17:32:49 HKT 2006

"unicode就是一种信息打包的方式"这种说法很特别,第一次见到^_^
.NET跟JAVA的字符串使用的是unicode倒是避免了不少麻烦。

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号