Python中关于Python的一个问题

a='ÿþU\x00S\x00E\x00 \x00[\x00P\x00h\x00o\x00n\x00e\x00D\x00a\x00t\x00a\x00]\x00\n'
print(a)
index=a.find('PhoneData')

为什么 index==-1 呢?有点看不懂呀?
有人指点下吗?


Python中关于Python的一个问题
7 回复

-1 就是没找到


你是对 find 有误解吗? find 寻找的是连续的整段字符串,中间不能包括别的字符的。

\00相当于 ascii 码的 NUL(null),空字符,虽然不可见但是他是存在的.
所以你的 PhoneData 之间有别的字符.和你找的不一样.

a=u’ÿþU\x00S\x00E\x00 \x00[\x00P\x00h\x00o\x00n\x00e\x00D\x00a\x00t\x00a\x00]\x00\n’
print(a) # ÿþUSE [PhoneData]

a='ÿþU\x00S\x00E\x00 \x00[\x00P\x00h\x00o\x00n\x00e\x00D\x00a\x00t\x00a\x00]\x00\n’
b=a.encode(‘latin1’).decode(‘utf16’, ‘ignore’)
b.find(‘PhoneData’)

In [29]: u"\x00P\x00h\x00o\x00n\x00e\x00D\x00a\x00t\x00a\x00" == u"PhoneData"
Out[29]: False

回到顶部