Pregunta

Estoy usando el intérprete de Python de esta manera:

>>> s = 'Ã'
>>> s
'\xc3'

¿Cómo puedo imprimir s variable para mostrar el carácter A. ??? Esta es la primera y más sencilla pregunta. Realmente, estoy recibiendo el contenido de una página web que tiene caracteres ASCII no como el anterior y otros con tilde como A, E, I, N, etc. También, estoy tratando de ejecutar una expresión regular con estos personajes de la patrón de expresión contra el contenido de la página web.

¿Cómo puede resolver este problema ??

Este es un ejemplo de una expresión regular:

u'<td[^>]*>\s*Definición\s*</td><td class="value"[^>]*>\s*(?P<data>[\w ,-:\.\(\)]+)\s*</td>'

Si utilizo Expresson aplicación funciona bien.

EDITAR [05/26/2009 16:38]: Lo sentimos, por mi explicación. Voy a tratar de explicar mejor.

Tengo que conseguir un poco de texto de una página. Tengo la URL de esa página y tengo la expresión regular para conseguir ese texto. Lo primero que pensé era la expresión regular que estaba mal. Lo comprobé con Expresso y funciona bien, tengo el texto que quería. Por lo tanto, el segundo que pensé fue para imprimir el contenido de la página y fue entonces cuando vi que el contenido no era lo que veo en el código fuente de la página web. Las diferencias son los caracteres no ASCII como la A, E, I, etc. Ahora, yo no sé lo que tengo que hacer y si el problema está en la codificación del contenido de la página o en el texto patrón de la expresión regular. Una de las expresiones regulares que he definido es el anterior.

La pregunta wolud ser: ¿hay algún problema al utilizar expresiones regulares qué texto patrón tiene caracteres no ASCII ???

¿Fue útil?

Solución

Supongamos que desea imprimir como UTF-8. Antes de pitón 3, el mejor es para codificar específicamente

print u'Ã'.encode('utf-8')

si se obtiene el texto externamente entonces usted tiene que decodificar específicamente ( "UTF-8) como

f = open(my_file)
a = f.next().decode('utf-8') # you have a unicode line in a
print a.encode('utf-8') 

Otros consejos

¿Cómo puedo imprimir s variable para mostrar el carácter à ???
uso print:

>>> s = 'Ã'
>>> s
'\xc3'
>>> print s
Ã

Me gustaría utilizar ord() para averiguar si un personaje es ASCII / especial:

if ord(c) > 127:
    # special character

Esto probablemente no funcionará con codificaciones multibyte como UTF-8. En este caso, me gustaría convertir a Unicode antes de la prueba.

Si recibe caracteres especiales desde una página web, se debe conocer la codificación. Entonces decodificarlo, consulte Unicode COMO .

Editar: Definitivamente no estoy seguro de lo que esta pregunta se refiere a ... Puede ser una buena idea para aclararlo

.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top