位置: 编程技术 - 正文

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

  • 五万元劳务费税率
  • 土地出让金会涨价吗
  • 出口退免税的退税办法为
  • 预缴所得税年底怎么结转
  • 公司支付宝收款二维码怎么弄
  • 行政事业性收费票据
  • 如何区别文化体育业和娱乐业
  • 工资薪金总额包括年终奖吗
  • 公司收的保证金可以打入私人账户吗
  • 经济补偿金也需要交个人所得税吗?
  • 企业最应避免的外部环境和内部条件组合是
  • 工会捐款规定
  • 租赁公司扣押金
  • 送现金券活动方案
  • 小规模公司怎么注册
  • 通用机打发票什么样子
  • 绿化工程企业所得税减免吗
  • 开发票税收分类编码怎么选
  • 同一笔销售业务的收入和成本
  • 工程结算收入要交税吗
  • 企业未代扣代缴个税
  • 公司自己的食堂需要办理食品经营许可证吗
  • 电子商业汇票背书是什么意思
  • win7 扫描仪
  • 主营业务成本算损益类科目吗
  • 预缴增值税附加税款怎么填写申报表
  • php有啥用
  • sgbhp.exe - sgbhp是什么进程 有什么用
  • PHP:curl_multi_getcontent()的用法_cURL函数
  • 计提固定资产折旧怎么做会计科目
  • 发票已付款未认账怎么办
  • 财务费用属不属于生产成本
  • 固定资产更新改造的账务处理
  • 境外服务收入如何申报增值税
  • vue set-cookie
  • 还贷款利息会计怎么做账
  • 微信公众平台的名词解释
  • 什么是大语言模型(LLM)?
  • 原生js实现promise
  • js轮播图视频教程
  • php的foreach
  • 旅行社代订酒店如何入账
  • C语言中次方怎么表示
  • 电子税务局没有税务数字账户怎么办
  • sql查看日志
  • 15个postgresql数据库实用命令分享
  • 利润计算公式是什么折扣
  • 乡村道路属于城市道路吗
  • 高新技术企业补助需要交所得税吗
  • 专家评审费如何入账
  • 员工购买口罩会计科目
  • 小规模纳税人转一般纳税人的条件
  • 超市返利账务处理
  • 银行金融手续费收费标准
  • 4s店销售返利
  • 与成本直接相关的有哪些
  • 一般纳税人购买汽车会计分录
  • 专用发票不抵扣要认证吗
  • 关于发票丢失的处罚
  • 公司想自己开发票怎么申请
  • 转让厂房如何缴纳土地增值税
  • 什么叫残保金减免
  • mac下mysql密码忘记了怎么办
  • win7系统安装win10 怎么安装
  • ubuntu卸载ubuntu-desktop
  • Mac系统怎么设置ftp
  • 主板升级bios失败怎么办
  • xp系统里的打印机怎么设置的和新7
  • ubuntu安装教程14.04
  • centosfind命令
  • xp系统桌面图标怎么设置
  • linux安装flash插件
  • windows xp开始菜单桌面图标消失
  • perl 教程
  • javascript运算
  • jquery写入json文件
  • js中的set
  • unity导出exe没反应
  • Javascript & DHTML 实例编程(教程)(四)初级实例篇2—动画
  • 注册会计师人员名单
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设