Unicode y encodings

De WikiEducator
Saltar a: navegación, buscar




Icon preknowledge.gif

Conocimiento previo

Una cadena Unicode es una secuencia de code points, que son números de 0 a 0x10ffff. Esta secuencia se tiene que representar en un conjunto de bytes (valores de 0 a 255) en memoria. Las reglas para traducir una cadena Unicode a una secuencia de bytes se llama encoding.





Icon objectives.jpg

El problema

¿Qué significa esto?

 UnicodeDecodeError: 'ascii' codec
 can't decode byte 0xc4 in position
 10: ordinal not in range(128)




Icon objectives.jpg

Normalizar cadena

import unicodedata
 
def textoplano(s):
 
    def normalize(c):
        return unicodedata.normalize("NFD", c)[0]  # NFD: Normal Form Decomposition 
 
    return ''.join(normalize(c) for c in s)
 
>>> textoplano('una cigüeña hábil')
"una ciguena habil"