如何将'\ xff \ xfe'转义为可读字符串

时间:2009-12-30 09:03:36

标签: python unicode encoding escaping

我在这段代码中看到一个字符串:

data[:2] == '\xff\xfe'

我不知道'\ xff \ xfe'是什么,

所以我想逃避它,但没有成功

import cgi
print cgi.escape('\xff\xfe')#print \xff\xfe

我怎么能得到它。

感谢

4 个答案:

答案 0 :(得分:11)

'\ xFF'表示十六进制值为FF的字节。 '\ xff \ xfe'是字节顺序标记:http://en.wikipedia.org/wiki/Byte_order_mark

您也可以将其表示为两个单独的字符,但这可能不会告诉您任何有用的信息。

答案 1 :(得分:2)

>>> print '\xff\xfe'.encode('string-escape')
\xff\xfe

答案 2 :(得分:2)

“我不知道'\ xff \ xfe'是什么'和”之间有什么联系?所以我想逃避它“? “逃避”它的目的是什么?

如果你给出比data[:2] == '\xff\xfe'更多的上下文(比如之前和之后的几行),那将会有很大帮助...但是看起来它正在测试data的前两个字节可能代表UTF-16 littleendian字节顺序标记。在这种情况下,您可以执行以下操作:

UTF16_LE_BOM = "\xff\xfe"

# much later
if data[:2] == UTF16_LE_BOM:
    do_something()

答案 3 :(得分:-2)

您无法转义或编码无效字符串。

您应该了解自己正在使用字符串非字节流,并且有些字符是您无法接受的,首先是0x00 - 以及你的例子恰好是BOM序列。

因此,如果您需要包含无效字符串字符(unicode或ascii),则必须停止使用字符串。

查看PEP-0358