位置: 编程技术 - 正文

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

  • 知识产权入股需要过户给对方么
  • 增值税的视同销售行为有哪些?
  • 税额为零的增值税是多少
  • 个体户开公账户需要什么资料
  • 注销有几种方法
  • 月末计提工资金额怎么核算
  • 公司买入股票要交所得税吗?
  • 地下车位未使用 要交物业服务费
  • 3项经费计提比例2015
  • 应交税费应交增值税的三级科目有哪些
  • 公司投资控股其他公司如何做账务处理
  • 主营业务税金及附加包括增值税吗
  • 小企业开发票了还能零报税吗?
  • 用于非增值税应交税费
  • 进项税额转出是好事还是坏事
  • 小规模企业所得税优惠政策最新2023
  • 资本性支出计算公式为什么加折旧
  • 鸿蒙工具箱使用视频
  • 购买一台电脑会计分录
  • Win10宽带无法连接
  • 华为手机开热点后wlan自动关闭
  • win10蓝牙驱动怎么安装程序
  • 怎么用html做一个收藏夹
  • 调整多计提企业利润
  • 威尔士黄水仙
  • 购入商品再卖出
  • 购买电脑固定资产怎么记账
  • php 通信
  • 文化体育用品批发城有哪些
  • 【AIGC】6、Segment Anything | Meta 推出超强悍可分割一切的模型 SAM
  • 前端基础知识总结
  • python%s
  • 怎么做应收应付账款分录
  • python中切片用法
  • 二氧化剂的使用方法
  • 董事费收入
  • python如何反编译
  • java接口基础知识
  • 图片加载不存在
  • 未分配利润与净利润有关系吗
  • 应交税金应交增值税年底转平吗
  • 租赁公司开票没有写数量可以开吗?
  • 应缴国库款和应缴专户款的区别
  • 产业扶持资金账户是什么
  • 土地前期开发费用属于开发成本吗
  • 贴现凭证是什么意思
  • 交通运输业营改增
  • 贷款罚息会计分录
  • 包工包料怎么开13个点发票
  • 损益类科目结转本年利润方向
  • 事业单位可以报考事业单位吗
  • 补价占整个交易金额的比例
  • 地方水利建设基金怎么计算
  • 无形资产管理的特点
  • 建账的基本步骤
  • c++ 虚数
  • sql server分组查询
  • Mysql主从同步的实现原理
  • win10文字模糊怎么调整
  • mac新手必看教程
  • Win7系统重装后鼠标键盘不能用怎么办
  • win10教育版如何恢复出厂设置
  • win8怎么改文件格式
  • 远程电脑屏幕桌面图标什么都没有了
  • win7 蓝屏1e
  • linux whatis与whatis database 使用及查询方法(man使用实例)
  • 安卓手机更新时间
  • bootstrap要学吗
  • 从零开始学什么技术
  • unity 摄像机
  • python下载方法
  • javascript如何学
  • 一种新的运算符号类型的题
  • android获取屏幕大小
  • 国家税务总局令第43号公告
  • 城管大队长级别高吗
  • 应交税费二级科目有哪些
  • 绿牌电动车需要过户吗?
  • 逆光代售和神仙代售那个好一点
  • 新疆税务电子
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设