Originalmente ASCII era usado en las antiguas computadoras como codificación, los valores podian ir desde 0 hasta 255 caracteres. Los cuales eran suficientes para todos los caracteres ingleses, de la "A" hasta "Z" mayúsculas, minúsculas y signos de puntuación y hasta caracteres especiales \n \r \t.
Hasta aquí todo bien, pero no paso mucho para que las computadoras se empezaran a expandir por todo el mundo y con ello el soporte para otros caracteres como áéí o incluso caracteres como あえい era vital para el uso de una computadora. Así que para eso se inventaron otros tipos de encoding, la parte triste de esta historia es que no se planifico bien y empezaron a surgir tantos tipos de encodings como se fueran necesitando. En lugar de hacer uno que soportara todos los lenguajes.
Bueno aqui un script sencillo de como codificar bien esos caracteres
Código Python:
Ver original#coding: utf-8
s = "á"
print repr(s)
print unicode(s, "utf-8")
s = '\xc3\xa1'
print repr(s)
print unicode(s, "utf-8")
Suponiendo que el encoding es utf-8