Aproximadamente convertir una cadena Unicode en una cadena ASCII en Python

no sé si esto es trivial o no, pero necesitaría convertir una cadena Unicode en una cadena ASCII, y no me gustaría tener todos esos caracteres de escape. Quiero decir, ¿es posible tener una conversión “aproximada” a algún personaje ascii bastante similar?

Por ejemplo: Gavin O’Connor se convierte a Gavin O \ x92Connor, pero realmente me gustaría que solo se convirtiera a Gavin O’Connor. es posible? ¿Alguien escribió alguna utilidad para hacerlo, o tengo que reemplazar manualmente todos los caracteres?

¡Muchas gracias! Marco

Utilice el paquete Unidecode para transliterar la cadena.

>>> import unidecode >>> unidecode.unidecode(u'Gavin O'Connor') "Gavin O'Connor" 
 b = str(a.encode('utf-8').decode('ascii', 'ignore')) 

debería funcionar bien

 import unicodedata unicode_string = u"Gavin O'Connor" print unicodedata.normalize('NFKD', unicode_string).encode('ascii','ignore') 

Salida:

 Gavin O'Connor

Aquí está el documento que describe los formularios de normalización: http://unicode.org/reports/tr15/

Existe una técnica para quitar los acentos de los personajes, pero otros personajes deben ser reemplazados directamente. Consulte este artículo: http://effbot.org/zone/unicode-convert.htm

Intenta reemplazar el personaje simple

 str1 = "“I am the greatest”, said Gavin O'Connor" print(str1) print(str1.replace("'", "'").replace("“","\"").replace("”","\"")) 

PS: agregue # -*- coding: utf-8 -*- en la parte superior de su archivo .py si obtiene un error