python输出unicode编码_Python以utf8编码读取文件

python输出unicode编码_Python以utf8编码读取文件withopen(self.path,’r’)astest:forlineintest:pass代码如上,出现错误:UnicodeDecodeError:’gbk’codeccan’tdecodebyte0x80inposition…UnicodeDecodeError:’gbk’codeccan’tdecodebyte0x80inposition9:…或者是UnicodeDecodeErr..

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

with open(self.path, 'r') as test:
     for line in test:
         pass

代码如上,出现错误:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position …
 

UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 9: ...

或者是

UnicodeDecodeError: 'gbk' codec can't decode byte 0xb3 in position 9: illegal multibyte sequence

解决方法

主要原因是因为编码的问题,可能是因为0x80这个字节在gbk编码中没有这个字符,可能原字符是两个字节,在gbk里被解析成了一个字节,导致字符不存在。解决方法有两个,一个是二进制读取,一个是改编编码方式:

方法一:二进制读取

 with open(self.path, 'rb') as test:
     for line in test:
         pass

但是这样在读取的是中文文本的时候还可能会产生其他的错误:

TypeError: a bytes-like object is required, not 'str'

方法二:改变打开文件的编码方式

 with open(self.path, 'r', encoding='utf-8') as test:
     for line in test:
         pass

或者

 with open(self.path, 'r', encoding='utf-8-sig') as test:
     for line in test:
         pass

这个utf-8-sig亲测好用,屡试不爽,非常nice

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194235.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 分布式CAP原理:一致性、可用性、分区容错

    分布式CAP原理:一致性、可用性、分区容错CAP概念单机系统由于所有的处理都在单机完成的,所以不存在数据一致性问题,但是如果系统崩溃了,就导致服务不可用。分布式系统可以实现服务的高可用,现有的大型网站几乎都是分布式的,特别是微服务的出现,使得分布式系统正变得越来越重要。分布式系统最大的难点,就是各个节点的状态如何同步。CAP原理给分布式系统的实现带来了指导思路,它也是理解分布式系统的重要理论。CAP由以下三个指标组成:C(Consistency):一致性A(Availability):可用性P(P…

    2022年7月25日
    7
  • csgo所有开箱网站_csgo国外开箱网站

    csgo所有开箱网站_csgo国外开箱网站CSGO国内开箱网站大全收录incsgo官网,skinsdog官网,coolkaixiang官网,88steam官网,Box818官网,Piggycase官网,Yskins官网incsgo国内CSGO饰品皮肤开箱网站官方链接:www.incsgo.gg注册登录自动免费获得$1.00美金取回状态:直接取回**优惠码:**csgogo(充值使用csgogo可增加5%充值金额)skinsdog狗网CSGO饰品皮肤开箱网站可直接取回官方链接:skinsdog.cc.

    2022年10月6日
    2
  • java 取余 负数_Java中有关负数取余的计算[通俗易懂]

    java 取余 负数_Java中有关负数取余的计算[通俗易懂]Java中有关负数取余的计算先看测试代码:publicclassSolution{publicstaticvoidmain(String[]args){System.out.println(“2%3=”+2%3);System.out.println(“2%-3=”+2%-3);System.out.println(“-2%3=”+-2…

    2022年5月22日
    40
  • gitlab cicd配置

    gitlab cicd配置简介以前代码更新之后,我们需要手动将代码拉到测试服务器上,运行验收通过之后,再在生产环境重新弄一遍,一两个服务还算轻松,如果涉及到的服务很多的话,每一个服务都需要这样来几遍,这是一个很头疼了,为了解决这个问题,我们引入了比较简单易懂的自动化部署工具,这也是gitlab自带的CI工具gitlab-runner,该工具解决了多环境多服务手动部署繁琐问题,用自动化脚本代替人工部署,我们不需要手…

    2022年6月9日
    86
  • 引入vuejs文件_引入vue文件

    引入vuejs文件_引入vue文件 一、引入vue.js文件 1.用脚本标签<script>引入外部vue.js文件<scriptsrc="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>2.下面在一个新的 <script><script>标签里写vue的代码<script..

    2022年10月8日
    8
  • pycharm如何设置背景图片_微信主题背景图片

    pycharm如何设置背景图片_微信主题背景图片好看的编译器能使我们愉快的完成编码工作,那么我们能不能给我们的编译器设置一个背景图片的呢???详细步骤1.打开我们的PyCharm,File–>Settings。2.Apperence–>BackgroundImage…。3.选择背景图片的路径,点击下方灰色的方块调整背景图片透明度,点击Ok,点击Ok。4.设置成功。…

    2022年8月26日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号