问题描述:

在file.txt中存了内容如下

AAAAAA

BBBBBB

CCCCCC

然后采用python显示,发现显示出来的是这样的

A A A A A A

B B B B B B

C C C C C C

 

Why?

 

Code如下

本意是想在文本文档中寻找某一行(CCC)的,但是一直都显示没有这一行,奇怪了

import io
import os

search_for_this_line = 'CCC' inf_file = io.open("C://file.txt", mode = 'r+') lines = inf_file.readlines() index_temp = 0 for line in lines: index_temp = index_temp + 1 print line if search_for_this_line in line: print "FOUND IT !!!" break inf_file.close()

 

后来发现,file.txt其实是unicode的utf-16(16bit for one character)的格式,而python默认open为ANSI(single byte for one character)的格式,所以就会有上面这个问题,将开始open那一行稍微修改,将encoding的方式传进去

inf_file = io.open("C://file.txt", mode = 'r+',encoding = 'utf-16')

就可以找到CCC这一行啦

打印出来也是

AAAAAA

BBBBBB

CCCCCC

完全正确了。

 

补充内容

关于unicode ansi等概念,在谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词这篇博文里面作者有讲的非常详细,不再赘述。 

相关文章:

  • 2021-12-29
  • 2021-08-21
  • 2021-04-22
  • 2022-12-23
  • 2021-07-18
  • 2022-02-28
  • 2021-12-13
  • 2021-06-28
猜你喜欢
  • 2022-12-23
  • 2021-12-25
  • 2021-09-25
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案