Python Convierte cadenas Unicode-Hex utf-8 a cadenas Unicode

Tiene s = u'Gaga\xe2\x80\x99s' pero necesita convertir a t = u'Gaga\u2019s'

¿Cómo se puede lograr esto mejor?

Siempre que descodificó la cadena original, probablemente se descodificó con latin-1 o un pariente cercano. Dado que latin-1 son los primeros 256 puntos de código de Unicode, esto funciona:

 >>> s = u'Gaga\xe2\x80\x99s' >>> s.encode('latin-1').decode('utf8') u'Gaga\u2019s' 
 s = u'Gaga\xe2\x80\x99s' t = u'Gaga\u2019s' x = s.encode('raw-unicode-escape').decode('utf-8') assert x==t print(x) 

rendimientos

 Gaga's 
 import codecs s = u"Gaga\xe2\x80\x99s" s_as_str = codecs.charmap_encode(s)[0] t = unicode(s_as_str, "utf-8") print t 

huellas dactilares

 u'Gaga\u2019s'