位置: 编程技术 - 正文

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

  • 税务师考试各科老师推荐
  • 对方公司已注销如何付款
  • 个人转让著作权免税吗
  • 发票已抵扣但对方要红冲后续原发票要拿回来吗
  • 变更了公司名称以前的发票还可以抵扣吗
  • 贸易公司没有仓库需要做入库
  • 建筑企业施工管理人员
  • 小规模纳税人农产品进项税抵扣
  • 进口增值税发票图片
  • 商品流通企业成本核算的内容包括
  • 公司零星费用报销话术
  • 股东转入投资款
  • 用库存物资抵货怎么做账
  • 预收账款在什么科目核算
  • 销项负数发票与红字发票
  • 修理厂普通发票
  • 股权转让过程中需要注意哪些问题
  • 跨年度多计提的社保调整
  • 空调安装费开票属于什么类
  • 股东其他应付款可以转为实收资本文本格式
  • 筹建期间的开办费包括哪些
  • 公司作为二房东怎么给别人开发票
  • bios设置网卡开启
  • 发放股票股利会增加流通在外股票的数量
  • 减免增值税计入什么科目
  • 个人所得税如何退税操作步骤
  • 小规模纳税人销售自己使用过的汽车
  • 外币报表折算差额计入其他综合收益
  • 年终双薪要做满一年嘛
  • 企业所得税的税率是多少
  • php框架开发教程
  • 农业产品征税范围注释财税字[1995]52号a
  • 没有进项开销项需要交几个点
  • 润滑脂开票属于成品油吗
  • 微信小程序最新咸鱼之王兑换
  • 微软回应
  • 如何修改php网页内容
  • 企业如何利用期货对冲风险怎么操作
  • 长期待摊费用的账务处理
  • 在mysql中子查询是
  • discuz mysql8.0
  • 马踏棋盘游戏规则
  • 银行年费什么时候取消的
  • 本期转让不动产的销售额是什么意思
  • 税控盘 金税盘
  • 水利基金可以不计提吗
  • 房产税从租和从价哪个税金高
  • mysql的服务器
  • 小微企业能申请高新吗
  • 个体户年报纳税一般填多少合适
  • 盘盈盘亏怎么看
  • 债券收益可以表现为三种形式
  • 业务招待费比例控制规定
  • 购买不动产增值税率
  • 哪些情况下可以终止心肺复苏
  • 房地产企业内部控制的现状
  • 电信线路租用费用
  • 外购的货物发生下列用途时,不能抵扣进项税额的是
  • 土地发票可以抵扣吗
  • SQL server不存在或拒绝访问 u8
  • mysqldump导出csv文件
  • win10 rs5
  • wind怎么申请
  • linux的ntp服务
  • 添加到右键快捷方式
  • win8.1专业版是哪个
  • mkcool是什么文件
  • Css属性中表示字体的是
  • nodejs实战教程
  • 磁盘监视器在哪
  • 三个文件怎么汇总到一个里
  • jquery封装的函数
  • 安卓中的菜单
  • javascript 默认参数
  • react navigate
  • 税务非正常户要提交什么资料
  • 公司出租非住宅税种
  • 财务负责人变更了之后还有影响吗
  • 尾矿治理文件
  • 平顶山属于河南还是河北
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设