似乎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.這里的要點是它按照我的預期將其讀為一行?,F在,當我使用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則不是。這是預期的行為嗎?在哪里可以找到將哪些字符解釋為行尾的定義?有沒有辦法不將其解釋為行尾?
添加回答
舉報
0/150
提交
取消