(Python 3.3.2) 我必须取消对 re.escape() 调用返回的一些非 ASCII 转义字符的转义。我在这里和这里看到了不起作用的方法。我在 100% UTF-8 环境中工作。
# pure ASCII string : ok
mystring = "a\n" # expected unescaped string : "a\n"
cod = codecs.getencoder('unicode_escape')
print( cod(mystring) )
# non ASCII string : method #1
mystring = "€\n"
# equivalent to : mystring = codecs.unicode_escape_decode(mystring)
cod = codecs.getdecoder('unicode_escape')
print(cod(mystring))
# RESULT = ('â\x82¬\n', 5) INSTEAD OF ("€\n", 2)
# non ASCII string : method #2
mystring = "€\n"
mystring = bytes(mystring, 'utf-8').decode('unicode_escape')
print(mystring)
# RESULT = â\202¬ INSTEAD OF "€\n"
这是一个错误吗?我误解了什么吗?
任何帮助,将不胜感激 !
PS:感谢 Michael Foukarakis 的评论,我编辑了我的帖子。