为了账号安全,请及时绑定邮箱和手机立即绑定

Python编解码器行尾

Python编解码器行尾

九州编程 2021-03-30 11:54:58
似乎Python的UTF-8编码(codecs包)将Unicode字符28、29和30解释为行尾。为什么?以及如何防止它这样做呢?示例代码:with open('unicodetest.txt', 'w') as f:  f.write('a'+chr(28)+'b'+chr(29)+'c'+chr(30)+'d'+chr(31)+'e')with open('unicodetest.txt', 'r') as f:  for i,l in enumerate(f):    print i, l# prints "0 abcde" with special characters in between.这里的要点是它按照我的预期将其读为一行。现在,当我使用codecsUTF-8读取它时,它将解释为多行。import codecswith codecs.open('unicodetest.txt', 'r', 'UTF-8') as f:  for i,l in enumerate(f):    print i, l# 0 a# 1 b# 2 c# 3 de# (again with the special characters after each a, b, c, d字符28至31被描述为“信息分隔符四”至“一个”(按此顺序)。有两件事引起我注意:1)28到30被解释为行尾,2)31则不是。这是预期的行为吗?在哪里可以找到将哪些字符解释为行尾的定义?有没有办法不将其解释为行尾?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信