美文网首页
python2字符编码问题

python2字符编码问题

作者: 许忠慧 | 来源:发表于2020-06-09 20:36 被阅读0次

常用python2的人应该知道python2对于中文及其不友好。经常出现出现各种乱码的情况。这里记录下常见乱码的处理方式

1.python脚本中不得使用任何中文,包含注释,处理方式
脚本的第一行加入:

#coding=utf-8
或
# -*- coding:utf-8 -*-

2.python的默认编码格式是ascii,可以通过改变默认编码格式的方式使python支持输出中文

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

3.python追加写入文件的时候乱码,该文件是从linux中导出的,为了不影响其正常的使用,不得改变该文件的编码格式,处理方式:

a = ' 你好'
f = open('test.txt', 'a')
f.write(a.decode(sys.stdin.encoding).encode('utf-8'))
f.close()

据说还有另外有另外一种处理方式(暂时没试过,下次出问题了再试):

#先decode成UTF-16,再encode成UTF-8 
jap=japtext.decode("SHIFT_JIS").encode("UTF-8") #不转成utf-8也可以 
chn=chntext.decode("GB2312").encode("UTF-8")#编码方式大小写都行utf-8也一样

4.对于字典和列表打印时候的中文乱码处理

import json
 
#打印字典
dict = {'name': '张三'}
print json.dumps(dict, encoding="UTF-8", ensure_ascii=False)
>>>{'name': '张三'}
 
#打印列表
list = [{'name': '张三'}]
print json.dumps(list, encoding="UTF-8", ensure_ascii=False)
>>>[{'name': '张三'}]

5.终极大招(获取编码格式,使用的是三方库),通过获取到的编码格式然后再进行转码

import chardet

print chardet.detect(data)

6.也是我现在正在使用的方式,放弃python2,使用python3,真香

相关文章

  • 学习资料

    简明python教程Python2字符编码问题小结stackoverflow about python

  • Python2编码问题

    Python2 源码编码 python2源码默认使用ascii进行编码,当源码中出现中文字符等非ascii编码的字...

  • 一篇文章助你理解Python3中字符串编码问题

    前几天给大家介绍了unicode编码和utf-8编码的理论知识,以及Python2中字符串编码问题,没来得及上车的...

  • python2与python3中字符串的一些区别

    python2中字符串默认为编码过的,python3中字符串默认为unicode 例如:python2中: pyt...

  • Python编码问题

    默认编码 字符串 python2 文本字符串默认编码是ASCII,中文默认UTF-8python3 文本字符串默认...

  • python 介绍 基本语法和流程控制

    python2 采用ascii字符集编码,python3 采用utf-8字符集编码 python 变量名:name

  • python的unicode、str、byte的关系

    作为一个用惯了python3的人,在python2如此操蛋的编码问题中,不得不整理一下python2中字符串和字节...

  • Python基础之文件处理(二)

    Python基础文件处理 python系列文档都是基于python3 一、字符编码 在python2默认编码是AS...

  • python2字符编码问题

    常用python2的人应该知道python2对于中文及其不友好。经常出现出现各种乱码的情况。这里记录下常见乱码的处...

  • 3

    python3相比于python2最大的区别就是字符支持中文级,python2默认的编码为 ASCII码,若是出现...

网友评论

      本文标题:python2字符编码问题

      本文链接:https://www.haomeiwen.com/subject/yiwetktx.html