zoukankan      html  css  js  c++  java
  • Python3的unicode编码转换成中文问题

    Python3的unicode编码转换成中文问题

    9102年,大部分人已经受尽了python2里面unicode的折磨,转向了python3。
    python3似乎对一切的unicode都那么的友好,当一个字符串里存在unicode的时候,只要字符串是硬编码的,就可以转换成中文打印在控制台上,如:

    s = ‘u7b14u8bb0’
    print(s)

    你得到的就是中文汉字。
    但是,假如你。。的这段含有‘u’的unicode编码不是硬编码进脚本的,而是通过requests在网上爬的。。。那么你会发现,你打印出来的,还是长这样的unicode编码,换句话说,解释器这个时候根本就没认出这东西原来是unicode编码,当成普通的字符序列了。
    百度找到了最好的解决方法:在这个unicode串后面加上:

    s = s.decode().encode(‘unicode_escape’)
    print(s)

    它就打印出汉字了

    python3中没有这种问题,所以最简单的方法是引入__future__模块,把新版本的特性导入到当前版本

    from __future__ import unicode_literals
    
    print json.dumps(m,ensure_ascii=False)
    
    =>{"a": "你好"}
    在写入文件的时候出现了Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
    
    大神的解决方法: 
    不使用open打开文件,而使用codecs:
    from __future__ import unicode_literals
    import codecs
    fp = codecs.open('output.txt', 'a+', 'utf-8')
    fp.write(json.dumps(m,ensure_ascii=False))
    fp.close()
  • 相关阅读:
    《统计学习方法》笔记十 隐马尔可夫模型
    《统计学习方法》笔记九 EM算法及其推广
    《统计学习方法》笔记八 提升方法
    《统计学习方法》笔记七(3) 支持向量机——非线性支持向量机
    拜拜~~~
    拓扑排序+DP CF721C Journey
    数学 CF1068B LCM
    扩展欧拉定理【洛谷P4139】 上帝与集合的正确用法
    浅谈扩展欧拉定理
    数论 CF230B T-primes
  • 原文地址:https://www.cnblogs.com/tangxiaosheng/p/12015847.html
Copyright © 2011-2022 走看看