el uso de los códigos Ascii extendidos con Python

He creado un diccionario con Python, pero tengo problemas con los códigos Ascii extendidos.

El bucle que crear el diccionario es : (número ascii de 128 164 : é,à, etc)

#extented ascii codes
i = 128
while i <= 165 :
    dictionnary[chr(i)] = 'extended ascii'
    i = i + 1

Pero cuando trato de usar diccionario :

    >>> dictionnary['è']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: '\xc3\xa8'

Tengo # –– coding: utf-8 –– en el encabezado de la secuencia de comandos de python.
He intentado codificar,decodificar, etc, pero el resultado es siempre malo.

Para entender lo que pasa, he intentado :

>>> ord('é')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: ord() expected a character, but string of length 2 found

y

    >>> ord(u'é')
233

Soy confundirse con ord(u é’), ya que » é » es el número 130 en la extensión de la tabla ascii y no 233.

Entiendo que los códigos ascii extendidos contiene «dos personajes» pero no entiendo cómo resolver el problema con el diccionario ?

Gracias de antemano !
🙂

  • No hay tal cosa como «el ASCII extendido». hay un montón de codificaciones (cpXXXX en Windows, latinXX, iso-8859-XX y otros en el mundo real), donde 247 puede significar diferentes cosas.
  • Extended Ascii de los caracteres en el rango de 128 y arriba. Ascii = 0 Y 127, Ascii Extendido = 128 A 255. Esto se remonta a la 60ies y 70’s. Ahora no es importante, excepto por su efecto residual como cuando usted no puede imprimir caracteres por encima de 128 pero puede por menos de 128. Se remonta a las terminales tontas.
InformationsquelleAutor lilawood | 2011-12-11

1 Kommentar

  1. 4

    Uso unichr en lugar de chr. La función chr produce una cadena que contiene un único byte, mientras que unichr produce una cadena que contiene un solo carácter unicode. Por último, hacer búsquedas con caracteres unicode demasiado: d[u'é'] porque d['é'] buscará la codificación utf-8 de é.

    Tiene 3 cosas en el código: a latin-1 codificado str, una codificación utf-8, str, y una cadena unicode. Llegar claro en su cabeza que tienes en cualquier punto en el tiempo requiere una gran cantidad de conocimientos acerca de cómo funciona Python y una buena comprensión de Unicode y codificaciones.

    Sin respuesta acerca de las codificaciones Unicode y está completa sin un enlace a Joel Spolsky del artículo sobre el asunto: El Mínimo Absoluto de Cada Desarrollador de Software Absolutamente, Positivamente, que Debe Saber Acerca de Unicode y Conjuntos de Caracteres (No hay Excusas!)

    • ¿Vas a decir, «No hay respuesta sobre codificaciones Unicode y es completa sin un enlace…»?
    • Gracias Fred, fijo!
    • gracias por su respuesta. He instalado python3 y funciona perfectamente 🙂

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea