美文网首页
python 编码问题

python 编码问题

作者: 超人不会飞_9664 | 来源:发表于2018-09-27 19:03 被阅读0次

以前python2.x版本的编码问题较多,所以这里只针对python3.x版本的问题进行讨论。

Unicode 编码

unicode编码可以理解为万国码,对所有国家都通用,像utf-8,utf-16都是其中一员,Unicode 为每种语言设置了唯一的二进制编码表示方式,也就是说无论哪个国家的语言,都可以在 Unicode 上找到对应的代码,换句话说unicode编码就是一‘’中介‘’。

其他编码系统到unicode编码的过程我们称之为decode(解码),反之我们称为encode(编码),例如将A编码转化成B编码,

A编码-->decode(A)-->unicode-->encode(B)-->B编码
通过urllib.request模块中的urlopen()函数得到的实例对象用read()读取之后返回的二进制的数据,我们可以通过decode(A代码)解码成Unicode形式,A代码就是网页的编码的方式,一般为utf-8

python使用open()打开文件时时的默认编码是与操作系统时默认编码是一样的。

with open('123.txt','w') as f:

    f.write('甲鱼')

with open('123.txt') as f:

    print(f.read())

上诉代码就会正常运行。但是如果在再开文件时设置编码跟操作系统编码不一样就会乱码。如下

with open('123.txt','w',encoding ='utf-8')as f:

f.write('甲鱼')

with open('123.txt')as f:

print(f.read())

输出结果为:

鐢查奔

所以很显然写入磁盘时用的utf-8编码,但是打开文件读取时用是操作系统默认的编码(cp936)自然会乱码

因此如果非要标注encoding 就要让写入程序和读取文件是同一种编码方式,

with open('123.txt','w',encoding ='utf-8')as f:

f.write('甲鱼')

with open('123.txt',encoding ='utf-8')as f:

print(f.read())

这样就没问题啦

相关文章

  • python 编码问题总结记录

    Python2的默认编码ASCII,这是python编码问题的根本原因,可以想象,python3的编码问题肯定没有...

  • Python优秀博客笔记汇总(持续更新)

    还在烦编码问题? Python 编码错误的本质原因 Python 编码为什么那么蛋疼? Python3 是如何解决...

  • learning

    python在终端进行文件的运行在终端输入 python test.py 时间时间的转换 编码python编码问题

  • Python程序的中文在cmd中乱码问题

    刚开始学python遇到的问题,编码的问题。程序编码是UTF-8,cmd默认是GBK编码

  • 学习资料

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

  • 【python报错】UnicodeDecodeError: &#

    一、问题 二、原因 编码问题:整个Python文件的编码以及文件读取的编码 三、解决方案 1、编码设置 第一行没有...

  • python 编码问题

    以前python2.x版本的编码问题较多,所以这里只针对python3.x版本的问题进行讨论。 Unicode 编...

  • python编码问题

    1. python2中关于utf-8编码问题解决方法: 或者开头加# -*- coding: utf-8 -*-但...

  • Python编码问题

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

  • python 编码问题

    1、一些概念 比特 / bit:计算机中最小的数据单位,是单个的二进制数值 0 或 1 字节 / byte:计算机...

网友评论

      本文标题:python 编码问题

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