2010-12-02 4 views
0

J'ai un serveur django qui tourne sur un serveur tornado. Lorsque j'utilise des caractères spéciaux comme ó ou ñ la partie de page d'un certain modèle de django n'est pas rendue (le jeu de caractères a été spécifié à 'utf-8' dans settings.py et tornado_script.py # - - codage : utf-8 - -). Étant donné qu'une partie seulement du modèle n'est pas bien rendue (un formulaire) et que le serveur fonctionne parfaitement avec le serveur django intégré, je suppose que le problème vient du serveur tornado, mais je ne peux pas déboguer cette configuration.Je ne peux pas voir les chaînes utf-8 sur django alimenté par le serveur tornado

Si certains d'entre vous savent comment déboguer ceci pour trouver la configuration manquante, faites le moi savoir.

J'ai beaucoup cherché ces 3 dernières heures sans résultats.

Cordialement

Répondre

0

probablement votre navigateur deviner le caractère erroné. Certains navigateurs vous permettent de définir l'encodage, je vous suggère de le configurer en UTF-8. Si c'est effectivement le problème, vous pouvez définir l'encodage comme une balise meta afin que tous les navigateurs choisissent toujours le bon encodage. Ajouter à ce head:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

Vous devez également vous assurer que vos caractères spéciaux sont vraiment en UTF-8. La plupart des éditeurs vous permet d'appliquer cela. Vous pouvez également définir un encodage spécial pour vos fichiers Python, qui se bloquera si quelque chose d'autre apparaît. Ajouter ce qui suit au début de votre source Pytho avec des personnages étranges:

# encoding: utf-8 
+0

Merci, mais j'ai aussi essayé. Restez à la recherche – Jaime

+0

Le problème est que l'utilisation de python manage.py runserver fonctionne parfaitement, mais en utilisant tornado ne pas. – Jaime

0

J'ai trouvé que la tornade « rendre » pour les modèles aime faire son propre codage qui peut être déconner les choses pour vous.

vous pouvez regarder leur source code pour voir exactement ce qu'il fait ...

Essayez d'utiliser « écrire » au lieu et voir si les caractères apparaissent dans la sortie, alors vous pouvez avoir une meilleure idée de ce qui se passe.

J

Questions connexes