Convertir texto Unicode a ASCII de 7 bits

Es común que en ciertas ocasiones se quiera representar un texto Unicode en ASCII. Por ejemplo, si se necesita crear un archivo en alguna plataforma que no soporte Unicode, o crear un URL a partir de un título. El módulo unidecode provee la solución: una simple función que toma una cadena Unicode y retorna su respectiva representación en ASCII. La tabla ASCII de 7 bits presenta 128 caracteres (del 0 al 127), de los cuales 95 son imprimibles:

! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~

Instalación

La forma más sencilla es vía pip:

pip install unidecode

También puedes descargar Unidecode de aquí y ejecutar:

python setup.py install
python setup.py test

Y para obtener la última versión en desarrollo:

git clone http://www.tablix.org/~avian/git/unidecode.git

Ejemplos

La función unidecode toma un objecto Unicode en Python 2 o una cadena en Python 3.

Python 2:

from unidecode import unidecode

print unidecode(u"áéíóú")
print unidecode(u"ko\u017eu\u0161\u010dek")

Python 3:

from unidecode import unidecode

print(unidecode("áéíóú"))
print(unidecode("ko\u017eu\u0161\u010dek"))

Imprime:

aeiou
kozuscek

Versión

Python 2, Python 3

Curso online 👨‍💻

¡Ya lanzamos el curso oficial de Recursos Python en Udemy! Un curso moderno para aprender Python desde cero con programación orientada a objetos, SQL y tkinter en 2024.

Consultoría 💡

Ofrecemos servicios profesionales de desarrollo y capacitación en Python a personas y empresas. Consultanos por tu proyecto.

Deja una respuesta