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)
上一篇 2025年11月9日 下午9:01
下一篇 2025年11月9日 下午9:43


相关推荐

  • PHP批量去除bom头代码的小工具

    PHP批量去除bom头代码的小工具

    2021年9月22日
    72
  • spring的InitializingBean的 afterPropertiesSet 方法

    1、概括Spirng的InitializingBean为bean提供了定义初始化方法的方式。InitializingBean是一个接口,它仅仅包含一个方法:afterPropertiesSet()。Spring会在设置完成一个bane所有的合作者后,去检查是否实现了InitializingBean接口,如果实现了就会调用afterPropertiesSet()方法。2、使用在项目中看到同事使用这个方法吧类型存入map来实现工厂的不同实现的获取。publicclassfactory

    2022年4月9日
    155
  • 数据库课程设计 ——酒店管理系统「建议收藏」

    数据库课程设计 ——酒店管理系统「建议收藏」一、 需求分析1.软件需求(1)酒店管理系统用于满足酒店工作人员和管理人员的需求。(2)酒店管理人员和工作人员可以为酒店房间加入入住和退房记录,并生成相应的报表用于查阅,确认和保存,酒店工作人员可以浏览、查询、统计、添加酒店房间的入住离开信息。管理员可以查询房间信息、查询员工信息、更改房间信息、更改员工信息等。(3)客户可以申请入住酒店,酒店工作人员需要对客户的姓名、性别、身份证号、房间…

    2022年5月12日
    59
  • quotedStr() 应用–DELPHI「建议收藏」

    quotedStr() 应用–DELPHI「建议收藏」varcsql,cstr:string;begin//quotedStr(edit1.text)以说是在sql查询分析器里给字符串edit1.text加个单引号,可以完全抛开delphi的语法.cStr…

    2022年10月17日
    3
  • Wireshark数据抓包分析之FTP协议

    Wireshark数据抓包分析之FTP协议实验步骤一  配置FTP服务器,并在测试者机器上登录FTP服务器在局域网环境中,我们使用一个小工具来(QuickEasyFTPServer)实现FTP服务器。配置QuickEasyFTPServer 软件双击桌面的QuickEasyFTPServer,如下图如上图,可以创建匿名的,但是匿名就没有密码,这里我们创建一个,下一步输入密码,这里随意,记住即可,后面客户端登录会用到。下一…

    2022年6月22日
    133
  • k8s部署kafka集群「建议收藏」

    k8s部署kafka集群「建议收藏」k8s以StatefulSet方式部署kafka集群:kafka-namespace.yamlapiVersion:v1kind:Namespacemetadata:name:kafkazookeeper-headless.yamlapiVersion:v1kind:Servicemetadata:name:zk-hsnamespace:kafkalabels:app:zkspec:selector:app:zkp

    2022年5月30日
    42

发表回复

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

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