位置: 编程技术 - 正文

python解决汉字编码问题:Unicode Decode Error(python写汉字代码)

编辑:rootadmin

推荐整理分享python解决汉字编码问题:Unicode Decode Error(python写汉字代码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python汉字输入,python写汉字代码,python汉字编码,python处理汉字,python汉字编码,python汉字编码,python处理汉字,python解决汉字编码问题client,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

最近由于项目需要,需要读取一个含有中文的txt文档,完了还要保存文件。文档之前是由base编码,导致所有汉字读取显示乱码。项目组把base废弃之后,先后出现两个错误:

如果对于ascii、unicode和utf-8还不了解的小伙伴,可以看之前的这篇文章关于字符串和编码

那么必须对下面这三个概念有所了解:

ascii只能表示数字、英文字母和一些特殊符号,不能表示汉字 unicode和utf-8都可以表示汉字,unicode是固定长度,utf-8是可变长度 内存中存储方式一般为unicode,而磁盘文件存储方式一般为utf-8,因为utf-8可以节约存储空间

那么python的默认编码是什么?

python的默认编码是ascii,可以通过sys.setdefaultencoding('utf-8')函数设置python的默认编码。

python解决汉字编码问题:Unicode Decode Error(python写汉字代码)

python中可以通过encode和decode的方式改变数据的编码,比如:

我们可以通过这两个函数设置编码。

那么,python中的str是什么类型?

binascii是将数据的二进制转换成ascii,上面的解释是:‘汉字'的类型是str,二进制是babad7d6,u‘汉字'是无法转换成ascii,这样就报出了开头的第一个错误。解决办法就是把它.encode(‘utf-8')成str类型。因为我命令行是windows默认的GBK编码,所有u'汉字'.encode(‘gbk')的时候,输出结果和‘汉字'结果一样。

总结一下,python的str实际上是unicode的一种,python的默认编码是ascii,对于非ascii转成ascii的时候都会报错,牢记下面的规则:

unicode => encode(‘合适的编码') => str str => decode(‘合适的编码') => unicode

还有一种简单的方式,就是在文件头设置编码,可以省去很多麻烦:

对于第二个问题,是在文件读取的时候出的错。utf-8的文件有bom和无bom两种方式,两者的差别好像在bom文件比无bom文件多了一个头,导致以utf-8方式读文件时报错,我先前曾尝试读文件的时候先对有无bom进行判断,跳过bom文件的头,后来失败了,真尴尬~~。

还得上google求助大神,具体的操作方法就是使用codecs库来读文件(我猜这个库就是对文件的头进行检测)。

对于编码问题,一定要懂得ascii、unicode和utf-8工作原理。

总结

标签: python写汉字代码

本文链接地址:https://www.jiuchutong.com/biancheng/381329.html 转载请保留说明!

上一篇:python生成验证码图片代码分享(python自动化验证码)

下一篇:Python中二维列表如何获取子区域元素的组成(python中二维列表的定义)

  • 个人应纳税所得额20万交多少税
  • 增值税发票税控开票软件
  • 所得税汇算清缴分录怎么做
  • 买一赠一的税务怎么算
  • 企业所得税季度预缴可以弥补以前年度亏损吗
  • 销售商品结转成本的记账凭证
  • 用友t3怎么结转本年利润
  • 其他收益科目代码
  • 个人独资企业没有申报税的后果
  • 房地产开发企业土地增值税清算
  • 供货方提供安装材料
  • 员工的油费补贴怎么算
  • 应付税款法账务处理
  • 社保基金的管理模式
  • 互联网合同要交社保吗
  • 营改增后房地产开发税费一览表
  • 闲置的房屋可以计提折旧吗
  • 一般纳税人出售不动产增值税税率是多少
  • 利用退休人员避孕措施
  • 企业研发过程中特殊收入的会计处理
  • 从贸易公司购买来的货物可以退税吗
  • 专用发票红字发票怎么开
  • 计提工资的时候是应发合计还是实发合计
  • 营改增之前没有增值税吗
  • 土地增值税的计税依据
  • php字符转换成数字
  • web渗透实战
  • linux驱动和windows驱动
  • 企业所得税的基本税率是多少?
  • 公司注册认缴的期限一般是多少
  • 轻量级网络设计
  • 静态html怎么部署到服务器
  • 增值税改动
  • 应税工资和实发工资区别
  • 增值税税点怎么算3个点
  • 增值税发票超过一年未抵扣
  • <四>2:掌握Const 与一二级指针结合应用
  • 银行收到几分钱怎么做账
  • mongodb win7
  • 其他应收款主要核算什么
  • 什么叫财务台账
  • 长期待摊的装修费什么时候入账
  • 金税盘申报流程视频
  • 高并发数据库解决方案
  • mdf和ndf文件
  • win7怎么配置
  • 实收资本账务处理流程
  • 免征的增值税如何处理
  • 机械租赁公司挂牌流程
  • 工会账户收到经费的会计科目
  • 改良设备的入账价值
  • 拍卖公司没开发票能退吗
  • 咨询费计入什么明细科目
  • mysql5.7最新版
  • ubuntu安装linux五笔输入法
  • mmc不能打开文件services.msc
  • javaw.exe是什么进程
  • ubuntu命令行怎么用
  • centos怎么备份
  • win7 64位系统双击桌面所有程序提示"文件没有与之关联的程序来执行"的解决方法
  • windows xp系
  • 自动隐藏桌面图标
  • linux常用性能监控命令
  • win7总是弹出广告怎么办
  • python中的json
  • 设计模式三种
  • js 图片加载
  • jquery触发点击操作
  • android图片库
  • react 系列
  • 简单好用的记账app
  • vue2.0与bootstrap3实现列表分页效果
  • jquery轮播图代码
  • 福建电子发票开票流程?
  • 废旧物资税务风险评估
  • 车船使用税电子税务局
  • 处室岗位是什么意思
  • 怎样加入广东省民间文艺家协会
  • 海淀属于哪个省?
  • 小规模和一般纳税人营业执照区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设