How to convert a raw string r'\xdd' to '\xdd' more gracefully?

Jach Feng jfong at ms4.hinet.net
Mon Dec 12 06:03:48 EST 2022


moi 在 2022年12月12日 星期一下午5:38:50 [UTC+8] 的信中寫道:
> >>> ast.literal_eval("r'\x7a'") == ast.literal_eval("r'z'") 
> True 
> >>> ast.literal_eval("r'\xe0'") == ast.literal_eval("r'à'") 
> True 
> >>> ast.literal_eval("r'\x9c'") == ast.literal_eval("r'œ'") 
> False 
> 
> --------- 
> 
> 
> >>> print(codecs.decode(r'z', 'unicode-escape')) 
> z 
> >>> print(codecs.decode(r'g\hz', 'unicode-escape')) 
> g\hz 
> >>> print(codecs.decode(r'g\az', 'unicode-escape')) 
> g\u0007z 
> >>> print(codecs.decode(r'g\nz', 'unicode-escape')) 
> g 
> z 
> >>> 
> print(codecs.decode(r'abcü', 'unicode-escape')) 
> abcü 
> >>>
I have a different result:-)

>>> print(codecs.decode(r'g\hz', 'unicode-escape'))
<stdin>:1: DeprecationWarning: invalid escape sequence '\h'
g\hz
>>> print(codecs.decode(r'g\az', 'unicode-escape'))
gz  # with a companioning bell


More information about the Python-list mailing list