zoukankan      html  css  js  c++  java
  • unicode转中文以及str形态的unicode转中文

    今天在工作中遇到这样一个问题(工作环境为Python2.7.1),需要将一个字典中字符串形态的Unicode类型的汉字转换成中文,随便总结一下:

    1、unicode转中文

    old = u'u4e2du56fd'
    print old.encode(encoding='utf-8')
    >>>>> 中国

    2、str形态的unicode转中文

    old = '\u9690\u79c1\u7a83\u53d6'
    print old.encode('utf-8').decode('unicode_escape')
    >>>>> 隐私窃取
    

    3、认识python2和python3编码并对比

    Python有两种不同的字符串,一种存储文本,一种存储字节。对于文本,python内部采用Unicode存储,而字节字符串显示原始字节序列或者ASCII。

    什么叫编码(encode)?

    将Unicode字符按照编码规则(如UTF-8)编成字节序列

    什么叫解码(decode)?

    将字节序列按照编码规则(如UTF-8)解释成unicode形式

    Python2 中字符的类型:
    	1、str: 已经编码后的字节序列
    	2、unicode: 编码前的文本字符
    import platform
    print (platform.python_version())
    
    str = '中国'
    print(str,type(str))
    print (str.decode('utf-8'),type(str.decode('utf-8')))
    
    
    2.7.13
    ('xe4xb8xadxe5x9bxbd', <type 'str'>)
    (u'u4e2du56fd', <type 'unicode'>)
    

     

    Python3 中字符的类型:
    	1、str: 编码过的 unicode 文本字符
    	2、bytes: 编码前的字节序列
    
    import platform
    print (platform.python_version())
    
    str = '中国'
    print(str,type(str))
    print (str.encode('utf-8'),type(str.encode('utf-8')))
    
    3.2.0
    中国 <class 'str'>
    b'xe4xb8xadxe5x9bxbd' <class 'bytes'>
    

    在Python3中的 str 对象在Python2中叫做 unicode ,感觉很通俗对吧?但 bytes 对象在Python2中叫做 str ,总体来说,在 Python3 中,字符编码问题得到了极大的优化,不再像 Python2 那么头疼。在 Python3 中,文本总是 Unicode, 由 str 类型进行表示,二进制数据使用 bytes 进行表示,不会将 str 与 bytes 偷偷的混在一起,使得两者的区别更加明显。

  • 相关阅读:
    DEDECMS里面DEDE函数解析
    dede数据库类使用方法 $dsql
    DEDE数据库语句 DEDESQL命令批量替换 SQL执行语句
    织梦DedeCms网站更换域名后文章图片路径批量修改
    DSP using MATLAB 示例 Example3.12
    DSP using MATLAB 示例 Example3.11
    DSP using MATLAB 示例 Example3.10
    DSP using MATLAB 示例Example3.9
    DSP using MATLAB 示例Example3.8
    DSP using MATLAB 示例Example3.7
  • 原文地址:https://www.cnblogs.com/luxiaojun/p/6930045.html
Copyright © 2011-2022 走看看