Pourquoi ne pas en Python afficher ce texte correctement? (UTF-8 Décodage de l'Émission)

import urllib.request as u

zipcode = str(47401)
url = 'http://watchdog.net/us/?zip=' + zipcode
con = u.urlopen(url)

page = str(con.read())
value3 = int(page.find("<title>")) + 7
value4 = int(page.find("</title>")) - 15
district = str(page[value3:value4])
print(district)
newdistrict = district.replace("\xe2\x80\x99","'")
print(newdistrict)

Pour une raison quelconque, mon code est en tirant dans le titre dans le format suivant: IN-09: Indiana\xe2\x80\x99s 9th. Je sais que le \xe chaîne de caractères unicode pour l' ' symbole, mais je ne peux pas comprendre comment obtenir python pour remplacer cet ensemble de caractères avec la ' symbole. J'ai essayé de décodage de la chaîne, mais c'est déjà en unicode et le remplacer le code ci-dessus ne change rien. Aucun conseil sur ce que je fais mal?

Avez-vous essayé d'utiliser unicode littéraux?
Je ne suis pas entièrement sûr de ce que tu veux dire par là, pourriez-vous nous fournir un peu plus d'informations?
Ce n'est pas ', c'est (U+2019, DROIT guillemet SIMPLE).
Voyant que vous êtes en utilisant urllib.request, je présume que vous êtes à l'aide de Python 3.
Yup, à l'aide de Python 3. C'est bizarre, même si je ne un quartier.find("\xe2\x80\x99"), la valeur de l'attribution est -1, ce qui implique qu'il n'est pas de trouver une chaîne de caractères dans le district variable, même si c'est de l'imprimer sur l'écran lorsque la fonction d'impression est appelé.

OriginalL'auteur user1353035 | 2012-04-24