This link列出了一些python特定的编码。
其中一种编码是“ unicode_escape”。
我只是想弄清楚,真的需要这种特殊编码吗?
>>> l = r'C:\Users\userx\toot'
>>> l
'C:\\Users\\userx\\toot'
>>> l.encode('unicode_escape').decode()
'C:\\\\Users\\\\userx\\\\toot'
如果您可以在上面看到,则'l'是一个Unicode对象,已经负责转义反斜杠。将其转换为“ unicode_escape”编码会再添加一组转义的反斜杠,这对我来说没有任何意义。
问题:
答案 0 :(得分:1)
适合作为ASCII编码的Python源代码中的Unicode文字内容的编码,但引号不会转义。从Latin-1源代码解码。请注意,默认情况下,Python源代码实际上使用UTF-8。
因此,print(l.encode('unicode_escape').decode())
所做的事情几乎等同于 print(repr(l))
,除了它不会在字符串的外部添加引号,而在字符串的内部不使用引号。
不使用print()
时,REPL会使用默认的repr()
,因此反斜杠转义了两次-与运行>>> repr(l)
时完全相同。