菜鸟对Python编码问题解决思路

刚刚解决了一个处理中文解码编码的问题,有必要写下来总结这次经验。

因为每行中行内容有点多,想人为地分成两行。BUT,UnicodeDecodeError发生了。

首先本人现在的对编码解码的判断还不是十分清楚。多次尝试后,我想到用比较直观的解决办法就是用len函数来测算字符串长度,进一步清楚目前编码的形态。比如下面的一个简单处理比较,得到实际的中文字数长度后,再处理内容分行或者截取会更加方便,也不会发生像UnicodeDecodeError这类错误。

>>> f=open('1.txt')   #读取文件1.txt的三行中文内容

>>> f.seek(0)
>>> for line in f:
...     print(len(line))    
...
73
77
77

#LEN测一下三行中文内容发现结果不是实际中文字的长度,目测是一个中文算两个字节的长度

>>> f.seek(0)
>>> for line in f:
...     print(len(line.decode('gbk')))   #解码后LEN测一下三行中文内容发现是实际中文的长度
...
47
41
41
>>>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值