位置: 编程技术 - 正文

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

  • 逆回购会不会亏本金
  • 增值税勾选统计后怎么申报
  • 即征即退收入要交税吗
  • 城建税减免性质代码 0申报
  • 个人所得税差额20%政策
  • 季报申报之后还可以改吗?
  • 一般纳税人收到普票怎么做分录
  • 购买旧固定资产的增值税进项税
  • 销售出库发票会计分录怎么做?
  • 私车公用产生的过路费开个人发票还是公司发票
  • 异地预缴增值税后本地怎么申报
  • 税费改革是什么
  • 贴现法付息什么意思
  • 商品入库时的会计分录
  • 营改增后税目税率表
  • 交增值税入什么科目
  • 建筑企业一般纳税人提供建筑服务属于老项目
  • 分工分类法
  • 逃避的概念
  • 合理损耗算入账价值吗
  • 买保险公司的年金险划算吗
  • 营改增的纳税人
  • 个人取得的股票转让所得暂不征收个人所得税
  • 会计师事务所执业许可和监督管理办法
  • 个人独资企业出资额是注册资本吗
  • 个人所得税更正申报有滞纳金吗
  • 银行财务软件用什么
  • 扶贫贷款主要指
  • 成本和费用属于资产吗
  • 征信费用会计分录
  • 可转债发行费用税前扣除
  • 解决思路怎么写
  • php语言之mysql操作
  • linux取消静态ip
  • PHP:session_start()的用法_Session函数
  • 回迁安置房开发商可以出售吗
  • 不征税收入用于支出所形成的费用是什么意思
  • 债务重组是什么工作
  • 股东已转让股权还可以追究出资吗
  • 建筑业主营业务收入二级科目有哪些
  • linux阅读pdf
  • 稀释性每股收益计算例题
  • 一般纳税人简易计税会计分录
  • 《一文搞懂IoU发展历程》GIoU、DIoU、CIoU、EIoU、αIoU、SIoU
  • ChatGPT 逆天测试,结局出乎预料
  • hashmap 面试
  • 一税两费减免政策
  • 不抵扣勾选的发票在哪里查看
  • 企业所得税的成本
  • 查询不到shsh怎么回事
  • 企业的业务招待费属于什么费用
  • 工程物资属于什么项目
  • 长投对方亏损
  • 劳务派遣的公司值得去吗
  • 走逃发票账务处理
  • 定额征收个体户如何交所得税
  • 小规模企业开具增值税专用发票
  • 海运发票可以抵扣增值税吗
  • 上月其他应付款本月怎么调回来
  • 增值税结转是月结转还是年度
  • 财务人员如何审合同课件
  • 库存的周转天数
  • mysql中having什么意思
  • win8系统开机界面
  • centos权限不够怎么办
  • daio.dll 病毒
  • win102020h2版本
  • win8启动设置选哪个
  • win7系统无法删除打印机驱动
  • opengl基础知识
  • JavaScript创建数量n由用户决定的数组
  • 批处理的应用
  • nodejs全局异常监听
  • js文字循环滚动代码
  • javascript截图找图
  • 动态表单的设计与实现
  • 广东省税务总局官网
  • 国家关于农村土地流转政策
  • 常设机构怎么缴纳所得税
  • 北京市工会会员卡免费公园有哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设