J'utilise google app engine pour créer un site Web et j'ai des problèmes avec les caractères spéciaux. Je pense avoir réduit le problème à ces deux exemples de code:Ñ n'apparaît pas dans le moteur de recherche google site
request = urlfetch.fetch(
url=self.WWW_INFO,
payload=urllib.urlencode(inputs),
method=urlfetch.POST,
headers={'Content-Type': 'application/x-www-form-urlencoded'})
print request.content
Le code précédent affiche le contenu très bien, montrant les caractères spéciaux. Mais, la bonne façon d'utiliser le cadre pour afficher quelque chose utilise:
request = urlfetch.fetch(
url=self.WWW_INFO,
payload=urllib.urlencode(inputs),
method=urlfetch.POST,
headers={'Content-Type': 'application/x-www-form-urlencoded'})
self.response.out.write(request.content)
Ce qui ne présente pas les caractères spéciaux, et au lieu seulement des impressions. Que dois-je faire pour qu'il s'affiche correctement? Je sais qu'il me manque quelque chose, mais je n'arrive pas à comprendre ce que c'est. Le site Web définit le <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
, et j'ai essayé avec charset=UTF-8
sans succès.
J'apprécierai tous les conseils qui peuvent me diriger dans la bonne direction.
J'ai vérifié avec firebug, et il semble que le moteur d'application définit automatiquement l'en-tête de type de contenu à utf-8. –
C'est la valeur par défaut, oui - mais vous pouvez le régler sur autre chose si vous le souhaitez. –
L'a corrigé. Ce que je recevais était une chaîne codée ISO-8859-1, donc j'ai dû faire unicode (request.content, 'iso-8859-1') pour le convertir correctement en unicode avant de l'imprimer. –