According to the docs,编码string_escape
的内置字符串:
...而unicode_escape
:
因此,它们应该具有大致相同的行为。但是,它们似乎对单引号的处理方式有所不同:
>>> print """before '" \0 after""".encode('string-escape')
before \'" \x00 after
>>> print """before '" \0 after""".encode('unicode-escape')
before '" \x00 after
string_escape
转义单引号,而Unicode转义。可以假设我可以简单地说:>>> escaped = my_string.encode('unicode-escape').replace("'", "\\'")
...并获得预期的行为?
编辑: super 清晰地说,预期的行为得到了适合作为文字的东西。
最佳答案
根据我对CPython 2.6.5源代码中unicode-escape
和unicode repr
的实现的解释,是的。 repr(unicode_string)
和unicode_string.encode('unicode-escape')
之间的唯一区别是包含包装引号和转义使用哪种引号。
它们都由相同的函数unicodeescape_string
驱动。该函数采用一个参数,其唯一功能是切换环绕引号的添加和该引号的转义。
关于python - Python “string_escape”与 “unicode_escape”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2969044/