问题描述:我要判断的两个字符串是否相等(‘区站号’==‘区站号’),第一个值是我从txt文件导入的数据,第二个值是我自己定义的并使用decode('utf-8')得到的,如果你用print函数打印这两个变量,则都是‘区站号',但是if语句判断,这两个值是不相等的。用直接显示的方式,u'\u533a\u7ad9\u53f7' 和 u'\ufeff\u533a\u7ad9\u53f7'的区别。可以使用下述方法解决。
引用:http://blog.chinaunix.net/uid-7208369-id-2658427.html
原来,某些软件,如notepad,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。
因此我们在读取时需要自己去掉这些字符,python中的codecs module定义了这个常量:# coding=gbkimport codecsdata = open("Test.txt").read()if data[:3] == codecs.BOM_UTF8: data = data[3:]print data.decode("utf-8")结果:abc中文和