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/

10-10 17:38