位置: 编程技术 - 正文

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

  • 增值税专用发票明细太多怎么办
  • 增值税专票发票代码在哪里看
  • 本月缴纳增值税和上个月账本金额不对
  • 待抵扣税金凭证分录
  • 非工作日是否可以开标
  • 一般纳税企业可以变更小微企业吗
  • 售后回租业务是什么
  • 已经缴纳的税款在哪里查询
  • 普通发票与增值税发票的图片
  • 企业政府性征地补偿款如何合法使用
  • 冲回存货跌价准备计提递延所得税
  • 限制性股票科目
  • 付垫资款给其他公司应该怎么做账?
  • 员工离职公司需要办理什么手续
  • 支付境外咨询费代扣代缴企业所得税
  • 银行汇票的概念
  • 工资哪些扣款应该扣税
  • 购买税控盘的钱能全额抵扣增值税吗
  • 国税里发票采集中的税控机动车发票是指什么发票?
  • 药企常见税务风险及措施
  • 所得税费用是在哪个科目
  • 应交税费包括了增值税吗
  • 进项税额转出凭证怎么做
  • 建筑企业异地预缴增值税流程
  • 营业外收入属于什么会计要素
  • 厂房出租开发票选择什么税收分类编码
  • 无形资产的入账价值包括什么
  • 个税本期收入是应发还是实发
  • 现金折扣列题
  • 工会经费的计税依据包括单位社保吗
  • 新装的电脑开机慢是什么原因
  • 微软发布新windows
  • 临时工工资应该找人力资源要吗
  • linux系统的介绍
  • mac电脑修改dns
  • macbookprofacetime
  • 工程收入和成本的区别
  • 职工教育经费支出包括哪些内容
  • php编写用户注册界面
  • HttpServletRequest 获取参数
  • 机动车发票冲红太多会怎么样
  • 其他权益工具是什么会计科目
  • 银行账号未备案怎么解决
  • markdown小小白常用语法
  • 关联方计提坏账吗
  • 银行存款调节表调整后的银行存款余额
  • 社会团体指的是什么单位
  • 简述清算机构的职责
  • 专项附加扣除可以随时更改吗
  • 实习生个人所得税需要申报吗?
  • 中标服务费如何赋码
  • 成本费用会计分录
  • 现金折扣与商业折扣的计算
  • 房产税开征利好那些概念股 新闻
  • 零售行业会计分录怎么做
  • 手写账目表格怎么做
  • 企业如何计算增值税
  • 公司支付质保金怎么做账
  • 发票拒收证明盖公章还是财务章
  • 触发器中instead of
  • mysql数据库全量备份
  • Linux系统复制图片
  • 分布式交互
  • wbs是什么的缩写
  • 怎么看80端口被占用
  • silent.exe - silent是什么进程 有什么用
  • windows怎么更改网络状态
  • 怎么看win8还是win10
  • windows10无法安装
  • win10 提示
  • win10系统打开cad出现致命错误
  • Node.js中child_process实现多进程
  • 资源加载中是什么原因
  • javascript高级程序设计电子版
  • xmpp client
  • 修改应用程序图标
  • python3 tkinter
  • 辽宁省国家税务局电子税务局官网
  • 宁波鄞州区行政区划代码
  • 我各位一个关于网上申报增值税所得税的申报流
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设