位置: 编程技术 - 正文

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

  • 广播影视服务税率2023
  • 机动车发票税率怎么算
  • 税务季报利润表的本年累计可以更改吗
  • 财政部监制章可以报销吗
  • 建筑业企业纳税人税率是多少
  • 冲减营业税金及附加的分录
  • 政府专项补助资金需要交所得税吗
  • 开具发票时如何选择对应的商品分类编码?
  • 用友软件销售操作流程
  • 企业分立特殊性税务处理涉税
  • 职工暖气费报销算福利
  • 异地预缴增值税后本地怎么申报
  • 补交印花税需要调账吗
  • 固定资产抵扣新政策2022
  • 出口退税备案完后怎么办
  • 应付职工薪酬科目有余额怎么调整
  • 贸易类公司所得税核定征收税率是多少?
  • 营改增后进项税相关规定
  • 固定基金会计分录怎么处理
  • 文化建设事业费按季度申报吗
  • 工伤后辞职了还可以报工伤
  • 技术服务费怎么开票
  • 研发费用费用化金额和资本化金额有什么区别
  • 收入税金摘要怎么写
  • 递延资产和长期负债区别
  • 1697508933
  • 物业公司收取的广告费开什么发票
  • 资产减值损失怎么影响利润
  • 现金流量具体内容
  • 残保金零申报但是逾期未报
  • 企业庆祝建党活动
  • 个人出租住宅需要交哪些税
  • win11版本英文
  • 如何在pc桌面上添加文件
  • checkingmedia什么意思戴尔笔记本
  • 支票存根属于什么凭证类型
  • hpc程序
  • pavsrv50.exe - pavsrv50进程管理信息
  • websocket基于http
  • 现代服务包括哪些税目
  • vue开发教程
  • 人工费和劳务费怎么算
  • 生产部门使用的各种机器设备属于什么会计科目
  • 企业所得税汇算清缴会计分录
  • 有净残值的固定资产累计折旧怎么算
  • 呆账冲销是什么意思
  • 国税局领发票是哪些项目需要收取费用
  • SQL Server 2005 DTS导入平面数据出现错误解决方案
  • mysql数据库如何升级
  • oracle sql 不等于某个字符
  • 委托开户银行发放上月工资
  • 品种法的特点有( )
  • 个税填在资产负债表哪个地方
  • 给员工的奖金计入什么科目
  • 新准则下企业计划的内容
  • 上年期末留底税额怎么算
  • 坏账准备的帐务处理
  • 健身器材折旧年限及计提办法
  • 虚购发票进项税怎么处理
  • 主营业务成本账户属于什么账户
  • 工业增加值计算表(按生产法)
  • 产成品入库的单据是什么
  • 存货盘亏的账务处理怎么做
  • sqlserver获取年月日
  • 建立iis
  • linux find -perm 详解
  • zmweb.exe是什么进程
  • window出现问题
  • win8.1无法安装
  • win7任务栏还原到下面快捷键
  • window10 不能上网
  • linux系统硬盘分区类型
  • windows8开机启动项在哪里设置
  • jquery实战
  • js 对象内存 占用
  • 原生js实现ajax步骤
  • json convert
  • 山西省国家税务局王旭斌局长
  • 长春国税局科员工资是多少
  • 小规模纳税人需要建账吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设