免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: sh_royan
打印 上一主题 下一主题

[python] 遇到个问题..好象是个问题.. [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-02-02 17:16 |只看该作者
\xnn是python的内部表示,它其实是一个16进制的字符串。所以如果一个字符串真正为\xnn反而是不对的。可以使用eval将一个\x表示的转为真正的字符串:


  1. >>> u = '%E7%94%A8%E6%B3%95'.replace('%','\\x')
  2. >>> uu = eval("'%s'" % u)
  3. >>> print unicode(uu, 'utf-8')
  4. 用法
复制代码

论坛徽章:
0
12 [报告]
发表于 2008-02-03 15:05 |只看该作者
恩 i see
偶像回我贴了,呵呵

论坛徽章:
0
13 [报告]
发表于 2008-02-03 15:08 |只看该作者
def main():
    uu = unicode('\xE7\x94\xA8\xE6\xB3\x95','utf-8')
    print uu.encode('gbk') #输出 '用法',但输入最后一句,就会输出 /x 什么的

if __name__ == '__main__':
    main()
    #print '\xE7' #加上这句,第五行结果会改变?什么道理..


这还是个问题..

论坛徽章:
0
14 [报告]
发表于 2008-02-03 19:32 |只看该作者
调用print '\xE7'的改变应该是汉字显示的问题,因为gbk汉字编码是由两个汉字构成,而\xE7正好是半个汉字,有可能造成显示有问题。这不算是一个bug.

论坛徽章:
0
15 [报告]
发表于 2008-02-04 17:57 |只看该作者
好像不能这么替换吧。'\x'是转义符,又不是真正的字符。

论坛徽章:
0
16 [报告]
发表于 2008-02-13 09:47 |只看该作者
原帖由 limodou 于 2008-2-3 19:32 发表
调用print '\xE7'的改变应该是汉字显示的问题,因为gbk汉字编码是由两个汉字构成,而\xE7正好是半个汉字,有可能造成显示有问题。这不算是一个bug.


恩。。也只能这样理解了。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP