位置: 编程技术 - 正文

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中二维列表的定义)

  • 其他应收款收不回来税务处理
  • 机票附加的保险有必要买吗
  • 季报利润表本期金额怎么计算
  • 自来水开出发票的税率是多少
  • 出口退税进项发票认证勾选
  • 律师事务所的账务流程
  • 审计核减理由
  • 融资租赁咨询服务合同需要交印花税吗
  • 未认证发票进项税分录
  • 融资租赁流程
  • 打款金额少于开票金额
  • 收不回的款项怎么处理
  • 建筑业小规模纳税人异地开票
  • 增值税加计抵减账务处理
  • 外协加工费会计分录
  • 总分机构怎么纳税
  • 合伙企业收到投资款要缴纳印花税吗
  • 预提材料运费怎么计算
  • 惠普hp笔记本电脑怎么开机
  • 固定资产的折旧是什么意思
  • 贷款逾期了利息和罚息可以不还吗
  • dc.exe 病毒
  • 劳务公司社保手续办理
  • 借款成坏账了怎么处理
  • 高温补贴计入
  • controller 层
  • laravel 分层
  • 销售滞后税务处理
  • thinkphp框架介绍
  • 新个税讲解
  • 新版python
  • 使用服务器
  • win11安卓子系统教程
  • 教育费附加免税需要计提吗?
  • 员工奖励现金如何做账
  • 职工教育教育经费
  • 非一般纳税人怎么报税
  • 增值税专用发票有几联?
  • php安装不了
  • 货币捐赠会计分录
  • 基建期业务招待会议记录
  • 什么情况下要去y加ies
  • mysql分页怎么实现
  • 补缴以前年度的印花税会计分录
  • 保洁服务属于
  • 加油票子能报销吗
  • 当月进项税额大但是也要交增值税吗
  • 营业税金及附加和税金及附加有什么区别
  • 预付款属于什么会计分录
  • 收到的现金货款转到公户备注往来款可以吗
  • 融资租入固定资产的入账价值
  • 计提个人经营所得税怎么算
  • 水电费收据可以入公司帐吗
  • 企业可以变更行业吗
  • win7系统双击不能打开我的电脑
  • win10怎么预览文件
  • 看视频出现弹幕怎么处理
  • win10系统任务栏卡顿
  • 电脑死机是啥原因
  • linux启动后出现grub
  • 将Red Hat 9.0 CD iso合成一张DVD iso的方法
  • hppusg.exe
  • windowsxp回收站实际是
  • Mtdacq.exe - Mtdacq是什么进程 有什么用
  • kprcycleaner.exe是什么
  • window10自动开机怎么回事
  • win10用户账户guest
  • react增删改查功能
  • javascript中的this
  • kotlin开发安卓教程
  • cmd的tree指令
  • JavaScript定义变量
  • 上海个体户纳税标准
  • 发票金额模糊怎么查询
  • 怎么在电脑上下载浙政钉
  • 潍坊税务局上班时间表
  • 17%增值税什么时候开始
  • 成都国税工勤人员待遇
  • 必须抓好什么治理能力和治理体系
  • 保险公司的人可以查到买保险的人都买了什么保险吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设