在不杀死 Unicode 的情况下,在 Python 2 中编码转义字符的正确方法是什么?

Nik*_*nko 6 python unicode encoding

我想我对 Python 的 unicode 字符串很着迷。我试图在 Unicode 字符串中编码转义字符而不转义实际的 Unicode 字符。我得到这个:

In [14]: a = u"Example\n"

In [15]: b = u"??????\n"

In [16]: print a
Example


In [17]: print b
??????


In [18]: print a.encode('unicode_escape')
Example\n

In [19]: print b.encode('unicode_escape')
\u041f\u0440\u0438\u043c\u0435\u0440\n
Run Code Online (Sandbox Code Playgroud)

虽然我非常需要(显然,英语示例可以按我的意愿工作):

In [18]: print a.encode('unicode_escape')
Example\n

In [19]: print b.encode('unicode_escape')
??????\n
Run Code Online (Sandbox Code Playgroud)

除了转向 Python 3,我该怎么办?

PS:正如下面所指出的,我实际上是在寻求逃避控制字符。我是否需要的不仅仅是那些将不得不被看到。

小智 1

该方法.encode返回一个字节字符串(strPython 2 中的类型),因此它不能返回 unicode 字符。

但由于只有很少的 \ - 序列,您可以轻松地.replace手动进行它们。有关完整列表,请参阅http://docs.python.org/reference/lexical_analysis.html#string-literals 。