Tengo una cadena ëaúlt que quiero obtener la longitud de una manipulación en función de las posiciones de los caracteres, etc. El problema es que el primero ë está siendo contado dos veces, o supongo que ë está en la posición 0 y "está en la posición 1.Python que devuelve la longitud incorrecta de la cadena cuando se usan caracteres especiales
¿Hay alguna manera en Python de tener un carácter como ë representado como 1?
Estoy usando la codificación UTF-8 para el código real y la página web a la que se está enviando.
editar: Solo algunos antecedentes sobre por qué tengo que hacer esto. Estoy trabajando en un proyecto que traduce inglés a Seneca (una forma de lenguaje nativo americano) y "aparece bastante". Algunas reglas de reescritura para ciertas palabras requieren el conocimiento de la posición de la letra (sí mismo y las letras que lo rodean) y otras características, como acentos y otras marcas diacríticas.
Esto es fácil de hacer en Perl con su 'Unicode :: GCString' módulo, cuyos métodos incluyen elementos estándar como 'length',' substr' e 'index', que funcionan en grafemas, no en puntos de código o unidades de código. Incluso incluye un método de "columnas", que es especialmente útil con caracteres amplia/completa de Asia oriental y con la combinación de caracteres y tal. Esto es realmente lo que quieres, y la forma en que estas cosas deberían funcionar. Sin embargo, no he encontrado el equivalente en Python. Perl tiene soporte Unicode más flexible y poderoso que Python, y es excelente en cadenas, por lo que puedes considerarlo. – tchrist