zoukankan      html  css  js  c++  java
  • python中 截取中文 字符串乱码

    python对于string的截取是 str[start,end]
    但是中文字符却显示乱码,让人莫名奇妙的。这个坑琢磨了半天,解决办法是改为unicode格式。
    unicode格式与str格式的转换关系参考
     
     

    一 string类型的字符串拼接

    先查看英文,可以看到他们截取是正确的。
     
     
    inter='hello world'
    repr(inter)
    list(inter)
    inter[2:4]
     
     
    当存在中文字符时,却不能正确解析了,
     
    zw='静夜思abc d'
    repr(zw)
    list(zw)
    zw[2:5]#截取字符串
    zw[1:4]
     
     
    查看一下控制台的编码格式,可以看到是utf-8编码。当然,str还可以用其他编码。
    import charade
    det=charade.detect(zw)
    print det
    {'confidence': 0.87625, 'encoding': 'utf-8'}
    页面是用utf-8编码的。
     
    解决方法,使用unicode进行编码。下面看看他们之间的区别

    二 unicode类型的字符串拼接

    当为英文时,区别不大
     
     
    en=u'hello'
    repr(en)
    list(en)
    en[2:3]
     
    中文夹杂英文时,能查看出,list是按字拆分的
     
     
    zw=u'静夜思ab d'
    repr(zw)
    list(zw)
    zw[2:3]
     
    由此可以看出转换为unicode进行截取正确,但在跟其他字符进行拼接时,需要注意字符串类型问题,str+unicode会报错~
  • 相关阅读:
    ABP 往前端返回详细的错误信息
    ABP 报错1
    three.js 测试1
    three.js 添加 图形控制界面 gui
    three.js 设置透明度
    three.js 基础使用1
    three.js 添加环境光
    three.js 添加三维坐标系
    P2690 接苹果
    [USACO08FEB]修路Making the Grade
  • 原文地址:https://www.cnblogs.com/q2z2012/p/7891254.html
Copyright © 2011-2022 走看看