Django UnicodeDecodeError lors de l'utilisation pdb
Question
Je préavis AVONS chaque fois que je mis:
import pdb; pdb.set_trace()
dans le projet Mon espagnol Django, si j'ai un caractère Unicode spécifique dans une chaîne comme:
Gracias por tu colaboración
Je reçois UnicodeDecodeError avec un « ordinal dans la plage (128) » dans une fenêtre de débogage Django. Le problème est que je ne peux pas facilement déboguer mon application. D'autre part Si je ipdb je reçois des choses comme:
ERROR - failed to write data to stream: <open file '<stdout>', mode 'w' at 0x7f3d43e34140>
J'ai googlé pour trouver une solution, mais il semble que je suis le seul à avoir ce numéro:)
La solution
J'ai découvert qu'un autre programmeur avait ajouté ceci au début du fichier vues, cette pause pdb et le comportement ipdb, comme je l'ai:
import sys, codecs
sys.stdout = codecs.getwriter('utf-8')(sys.stdout)
La suppression ou ces lignes fixes commenter la question, merci.
Autres conseils
En règle générale, que les émissions d'erreur si vous avez des caractères non-ascii dans votre fichier (Mabe dans un commentaire ou une chaîne). Si vous essayez d'ouvrir sans ipdb / pdb Django affiche un retraçage