位置: 编程技术 - 正文

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

  • 如何分析成本费用偏高
  • 职工福利费允许结转以后年度扣除吗
  • 删除申报记录什么意思
  • 所有应收账款是否均已记录
  • 金税盘如何增加税率
  • .申报表税源编码怎么填
  • 电子发票冲红还是作废
  • 工程项目结算方式有哪几种
  • 融资租赁与按揭贷款区别
  • 会计学中递延收益怎么算
  • 境外企业向境内提供国际运输服务核定征收的企业所得税
  • 用支票结清运杂费的会计分录
  • 自产产品销售增值税
  • 为什么要开增值税
  • 公司拍摄费计入什么科目
  • 火腿属于免税产品吗
  • 小规模纳税人咨询费税率
  • 小微企业超过300万企业所得税
  • 个人承担的社保费有哪些
  • 外购固定资产进项税
  • win7操作系统激活
  • 自己使用过的固定资产和旧货有什么区别
  • 企业合并中或有负债确认后期调整的项目
  • 个体工商税务登记需要费用
  • 上月材料入库会计分录
  • 农业公司的会计分录
  • 预付账款坏账处理流程
  • 如何解决WIN10系统文件夹只读属性不能更改
  • win7显示更新失败怎么办啊
  • 增值税纳税人申报表怎么填写
  • 冷车启动缺缸热车正常已解决
  • 票据融资都有哪些方式
  • php判断文件上传类型
  • php imap函数
  • php删除指定字符串
  • 营改增几个阶段
  • vue前端后端
  • 文化事业建设费减免政策
  • Spring Security(七)-- AuthenticationProvider
  • 替票报销财务犯法吗
  • vue.js简介
  • PHP+JQuery+Ajax实现分页方法详解
  • 房屋租赁可以开具住宿费发票吗
  • 事业单位电费应该谁交
  • 帝国cms会侵权吗为什么
  • 将织梦dedecms转换到wordpress
  • 印花税申报完成如何缴纳
  • 企业需要准备哪些申报材料?
  • 新会计准则物业公司计提应收账款分录
  • 企业的预付账款属于金融资产吗
  • 营改增的不利影响
  • 其他综合收益转入盈余公积和未分配利润
  • 更衣柜分配方案
  • 车间拆除施工方案
  • 抵消递延所得税资产会计处理
  • 不同银行外币汇率不一样
  • 加计抵扣会计处理
  • 员工的生育津贴怎么发放
  • 实收资本印花税最新规定
  • 主营业务成本如何做分录
  • 管理费用里包括哪些费用
  • 固定资产公司
  • 怎样计算存款利息?
  • windows sfc命令
  • window7qq登录失败
  • win8系统崩溃怎么办
  • centos7软件安装
  • linux root用户登陆
  • win10一年更新一次
  • gnome版本
  • javascriptz
  • 使用nodejs中httpProxy代理时候出现404异常的解决方法
  • jquery调用controller
  • 实用js代码
  • 贵阳网上办税服务厅
  • 郑州市国家税务局
  • 注册税务师考试时间2024
  • 张雪峰谈建筑专业
  • ca认证登录不了
  • 北京朝阳区国税局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设