Lors de l'exécution de Python CGI avec Lolipop Apparemment, même si j'écris normalement le japonais dans l'instruction d'impression, une erreur se produit et elle ne peut pas être affichée.
Il semble que la sortie standard soit traitée comme un tube et que la spécification de codage soit ignorée
wk.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys, locale, codecs
print "Content-Type: text/html\n\n"
print 'sys.stdin.encoding: %s\n\n' % sys.stdin.encoding
print 'sys.stdout.encoding: %s\n\n' % sys.stdout.encoding
print '%s\n\n' % sys.getfilesystemencoding()
print '%s\n\n' % sys.getdefaultencoding()
print '%s\n\n' % sys.stdin.encoding
print '%s\n\n' % sys.stdout.encoding
print '%s\n\n' % sys.stderr.encoding
Produira les résultats suivants.
sys.stdin.encoding: None
sys.stdout.encoding: None
ANSI_X3.4-1968
ascii
None
None
None
Utilisez le codage de force pour modifier la destination de sortie de l'instruction d'impression.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys, locale, codecs
print "Content-Type: text/html\n\n"
wk = u"Afficher le japonais"
Writer = codecs.getwriter('utf-8')
stdout = Writer(sys.stdout)
print >>stdout, u"%s" % (wk)
En conséquence, la ligne suivante s'affiche.
Afficher le japonais
Recommended Posts