Python 3:是否需要使用unicode_escape编码?
Python 3: is there any need of using unicode_escape encoding?
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" 编码会增加一组转义反斜杠,这对我来说没有任何意义。
问题:
- 真的需要"unicode_escape"编码吗?
- 为什么"unicode_escape"在上面多加了一组反斜杠?
Encoding suitable as the contents of a Unicode literal in ASCII-encoded Python source code, except that quotes are not escaped. Decodes from Latin-1 source code. Beware that Python source code actually uses UTF-8 by default.
因此,print(l.encode('unicode_escape').decode())
做的事情 几乎完全等同于 print(repr(l))
,除了它不在外部添加引号并在内部转义引号在字符串里面。
当你离开 print()
时,REPL 会执行默认的 repr()
,所以你会转义两次反斜杠 - 与 运行 [= 时发生的事情完全相同14=].
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" 编码会增加一组转义反斜杠,这对我来说没有任何意义。
问题:
- 真的需要"unicode_escape"编码吗?
- 为什么"unicode_escape"在上面多加了一组反斜杠?
Encoding suitable as the contents of a Unicode literal in ASCII-encoded Python source code, except that quotes are not escaped. Decodes from Latin-1 source code. Beware that Python source code actually uses UTF-8 by default.
因此,print(l.encode('unicode_escape').decode())
做的事情 几乎完全等同于 print(repr(l))
,除了它不在外部添加引号并在内部转义引号在字符串里面。
当你离开 print()
时,REPL 会执行默认的 repr()
,所以你会转义两次反斜杠 - 与 运行 [= 时发生的事情完全相同14=].