Python中UTF-8字符八进制转义的正确方法

Python中UTF-8字符八进制转义的正确方法,python,python-3.x,utf-8,Python,Python 3.x,Utf 8,我需要在Python中获得UTF-8字符的八进制转义序列,我想知道是否有更简单的方法来完成我想做的事情,例如,我忽略了标准库中的某些内容。我有一个临时的字符串操作函数,但我希望有一个更好的解决方案 我想从(例如:使用格式(I,'03o')将格式设置为八进制数,而不前导0o指示符,或者使用str.format()也包括文字反斜杠: >>> format(16, '03o') '020' >>> '\\{:03o}'.format(16) '\\020' 只需循

我需要在Python中获得UTF-8字符的八进制转义序列,我想知道是否有更简单的方法来完成我想做的事情,例如,我忽略了标准库中的某些内容。我有一个临时的字符串操作函数,但我希望有一个更好的解决方案

我想从(例如:
使用
格式(I,'03o')
将格式设置为八进制数,而不前导
0o
指示符,或者使用
str.format()
也包括文字反斜杠:

>>> format(16, '03o')
'020'
>>> '\\{:03o}'.format(16)
'\\020'
只需循环编码的
字节
值;每个字符都作为一个整数生成:

char = ''.join(['\\{:03o}'.format(c) for c in char.encode('utf8')])
演示:

使用
format(i,'03o')
将格式设置为八进制数,而不带前导
0o
指示符,或者使用
str.format()
也包括文字反斜杠:

>>> format(16, '03o')
'020'
>>> '\\{:03o}'.format(16)
'\\020'
只需循环编码的
字节
值;每个字符都作为一个整数生成:

char = ''.join(['\\{:03o}'.format(c) for c in char.encode('utf8')])
演示:


下次请尝试粘贴实际代码;用Python能够识别的ASCII引号替换所有花哨的引号有点痛苦;用ASCII引号替换所有花哨的引号是一件有点痛苦的事情,Python实际上可以识别ASCII引号。