Python 文件编码问题解决

最近使用python操作文件,经常遇到编码错误的问题,例如:

UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xbe in position 350: in

我看百度的解决方法就是手动指定编码方式,类似于以下这种方式:

encoding="UTF-8"

虽然这种类似的方法也能解决。但是这种方法只能靠运气去碰,如果刚好碰到文件编码和你指定的编码一致,那么就不会报错了。这种方式在尝试的过程就会很麻烦。

这里就有一个解决的小技巧,我们用Sublime这类的软件打开要操作的文件,就会在左下角看见文件到底是个什么编码格式。例如:

  

这样我们就找到文件具体的格式了。然后就通过百度找到指定编码格式的代码就可以解决编码问题。那么可以猜想这是不是一种通用的解决编码问题的方法呢?

原文地址:https://www.cnblogs.com/xiaoyh/p/11214046.html

时间: 2024-10-08 12:39:49

Python 文件编码问题解决的相关文章

python文件编码说明 coding=utf-8

python 支持3种编码声明,一般常用能见到下面两种 1.# -*- coding: utf-8 -*- 这种写法是为了兼容Emacs的编码声明 2.短一点,但Emacs不能用# coding=utf-8 短一点,但Emacs不能用 之所以要声明未编码类型 ,主要是中文出错的问题. 在python 文件开头(一般是第一行或第二行),用来说明你的Python源程序文件用使用的编码.缺省情况下你的程序需要使用ascii码来写,但如果在其中写中文的话,python解释器一般会报错,但如果加上你所用的

python文件编码说明 coding

权威来源:http://www.python.org/dev/peps/pep-0263/Python源文件的头部声明(声明在文件的第一行或第二行) # coding=utf-8 # coding:utf-8 # -*- coding:utf-8 -*- 要符合正则规范"coding[:=]\s*([-\w.]+)"  注意 :或=前后没有空格 Defining the Encoding Python will default to ASCII as standard encoding

编码部分历史及python文件编码简介

UTF-8 = unicode的扩展集,可变长的字符编码集 ascii --> gb2312 --> gbk1.0 -->gb18030 ascii --> unicode --> utf-8 Python2.x == ascii是其默认编码 如果在2.x中需要使用utf-8,需要以下声明: #!-*- coding:utf-8 -*- #coding:utf-8 Python3.x == unicode是其默认编码 unicode是向下兼容gb2312和gbk 原文地址:h

【转载】关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型

下面的内容来自:http://www.cnblogs.com/blueskylcc/p/5332642.html, 对方也是转的,不过没有找到转载的出处: 1.#!/usr/bin/python 是用来说明脚本语言是 python 的 是要用 /usr/bin下面的程序(工具)python,这个解释器,来解释 python 脚本,来运行 python 脚本的. 2.# -*- coding: utf-8 -*- 是用来指定文件编码为 utf-8 的 详情可以参考:PEP 0263 - Defin

Python | 多种编码文件(中文)乱码问题解决

问题线索 1 可以知道的是,文本文件的默认编码并不是utf8. 我们打开一个文本文件,并点击另存为 2 我们在新窗口的编码一栏看到默认编码是ANSI.先不管这个编码是什么编码,但是通过下拉列表我们知道,这种编码不是utf8. END 编码测试 1 对于Python里面的中文显示,我们常常使用utf8和gbk的编码.对于这两种编码笔者就不介绍了,总之都是专门可以处理中文的编码方式啦. 2 我们首先对文本文件测试了gbk解码.我们发现,此编码下文本文件内容可以正常显示,但是使用utf8解码,程序出错

Python学习笔记八:文件操作(续),文件编码与解码,函数,递归,函数式编程介绍,高阶函数

文件操作(续) 获得文件句柄位置,f.tell(),从0开始,按字符数计数 f.read(5),读取5个字符 返回文件句柄到某位置,f.seek(0) 文件在编辑过程中改变编码,f.detech() 获取文件编码,f.encoding() 获取文件在内存中的编号,f.fileno() 获取文件终端类型(tty.打印机等),f.isatty() 获取文件名,f.name() 判断文件句柄是否可移动(tty等不可移动),f.seekable() 判断文件是否可读,f.readable() 判断文件是

python声明文件编码,必须在文件的第一行或第二行

#coding=utf-8和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型 注意的两点: 1.声明必须在文件的第一行或第二行: 2.coding后面必须紧跟冒号或等号,#coding : utf-8是错的. 例: 声明编码前有字符串 1 '''testing user longin''' 2 #coding:utf-8 3 4 print u'''登录相关的测试''' 或 声明编码位于第三行 1 #'test' 2 3 #coding:utf-8 4 5 print

linux之系统编码,python编码,文件编码

1     前言 如果你对python2和python3的中编解码很清楚,这里我认为你很清楚. 具体参考文档: "python2 encode和decode函数说明.docx" "字符编码--从ASCII开始.docx" 以上所有文档均为本地文档. 2     Python编码 sys.getdefaultencoding(): 获取系统当前编码,这里的系统指的是python自己的内置系统,并非操作系统,即3中的python编码. sys.setdefaultenc

[译]如何定义python源文件的文件编码

简介 这篇文章是为了介绍定义python源文件文件编码的方法.python解释器可以根据所指定的编码信息对当前文件进行解析.通常来说,这种方法可以提高解析器对Unicode编码的源文件的识别,并且支持书写Unicode编码,例如在一个支持unicode编码的编辑器中使用UTF-8. 问题 在python2.1中,unicode编码只能通过Latin-1中的“unicode-escape”的方式来实现.这让很多平时不使用Latin-1编码的用户感到非常的不友好,尤其是大多数的亚洲国家更是这样.程序