转换 UTF-8 的八进制表示
Convert octal representation of UTF-8
我有一个这样的变量:
>>> s = '\320\227\320\264\320\260\320\275\320\270\320\265 \320\261\321\213\320\262\321\210\320\265\320\271'
>>> print(s)
070400050005 011302100501
这包含字符串“Зданиебывшей”的 UTF-8 编码的八进制转义表示(八进制 320 227
= 十六进制 D0 97
= UTF-8 表示“З”)。如何将此字符串解码为“Зданиебывшей”?
这有点骇人听闻。
s = '\320\227\320\264\320\260\320\275\320\270\320\265 \320\261\321\213\320\262\321\210\320\265\320\271'
b = bytes([int(i, 8) for i in s.split("\")[1:]])
print(b.decode("utf8"))
产量:Зданиебывшей
或者使用codecs
模块。
b2 = codecs.escape_decode(s)[0]
print(b2.decode("utf8"))
这会产生相同的结果。
我有一个这样的变量:
>>> s = '\320\227\320\264\320\260\320\275\320\270\320\265 \320\261\321\213\320\262\321\210\320\265\320\271'
>>> print(s)
070400050005 011302100501
这包含字符串“Зданиебывшей”的 UTF-8 编码的八进制转义表示(八进制 320 227
= 十六进制 D0 97
= UTF-8 表示“З”)。如何将此字符串解码为“Зданиебывшей”?
这有点骇人听闻。
s = '\320\227\320\264\320\260\320\275\320\270\320\265 \320\261\321\213\320\262\321\210\320\265\320\271'
b = bytes([int(i, 8) for i in s.split("\")[1:]])
print(b.decode("utf8"))
产量:Зданиебывшей
或者使用codecs
模块。
b2 = codecs.escape_decode(s)[0]
print(b2.decode("utf8"))
这会产生相同的结果。