编码探讨: 该以什么编码打开"gb2312"文本?

本文探讨了在Python中处理文本文件时遇到的编码问题,特别是GB2312, GBK和GB18030之间的关系。通过实验得出结论,Windows系统中,gbk/gb2312保存的文本会被映射为gb2312,而gb18030可以保存所有三种编码的文字。在程序中,应使用最大编码集打开文本以避免乱码。" 112958726,10297048,Vue实现PC端滚动到底部自动加载更多,"['Vue', '前端开发', 'JavaScript', 'DOM操作', '性能优化']
摘要由CSDN通过智能技术生成

在Python中,对文本文件进行操作时,一不小心就会遇到编码问题

出错示例:

1.UnicodeEncodeError: ‘gbk’ codec can’t encode character.
2.UnicodeEncodeError: ‘gb2312’ codec can’t encode character.
3.UnicodeEncodeError: ‘UTF-8’ codec can’t encode character


为了避免再遇到此类问题,现在来探究下gb2312,gbk与gb18030间的关系


基础知识:
1. 编码集关系: gb2312gbkgb18030
2. gb2312字符:  哈哈哈我去你大爷的
3. gbk字符:   妳爺愛情國家
4. gb18030字符: āōáóǎēǒǎɑ


结论一

Windows中,以gb2312 gbk gb18030编码存储的文件,会被映射到gb2312
就是说, 以gbk/gb2312保存的文本,程序读取该文本时, 仍会认为编码是gb2312


验证:
  编写程序, 依次创建gb2312 gbk gb18030 utf-8编码的文本, 然后尝试依次写入gb2312字符 gbk字符 gb18030字符, 最后依次检测其编码

import chardet
# 创建各种编码文本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值