Supongo que tengo la cadena "blöt träbåt"
que tiene unos a
y o
con diéresis y anillo arriba. Quiero que se convierta en "blot trabat"
tan simple como sea posible. He hecho algo de investigación y encontré el siguiente método: (. \u0308
para diéresis)¿Cuál es una buena manera de reemplazar caracteres internacionales con sus equivalentes latinos básicos usando Python?
import unicodedata
unicode_string = unicodedata.normalize('NFKD', unicode(string))
Esto me dará la cadena en formato Unicode con los caracteres internacionales se dividieron en carta base y la combinación de caracteres Ahora para conseguir esto de nuevo a una cadena ASCII podría hacer ascii_string = unicode_string.encode('ASCII', 'ignore')
y simplemente ignorará los caracteres combinados, dando como resultado la cadena "blot trabat"
.
La pregunta aquí es: ¿hay una mejor manera de hacer esto? Se siente como una manera indirecta, y estaba pensando que podría haber algo que desconozco. Por supuesto, podría concluir en una función auxiliar, pero preferiría verificar si esto ya no existe en Python.
"La cadena ASCII" blöt träbåt "" es una contradicción. ASCII no tiene caracteres acentuados. ¿Quisiste decir "La cadena Unicode"? – MSalters
Oye, eso es exactamente lo mismo que estoy haciendo en C# ... –
Sí, me acabo de dar cuenta de que he usado el término equivocado. Sin embargo, no necesariamente tiene que ser Unicode. Se puede ampliar ASCII (que era lo que realmente quería decir). – Blixt