Python 3, está usando o estilo sys.stdout.buffer.write (
Depois que eu aprendi sobrelend arquivos unicode no script da web Python 3.0, agora é hora de aprender usandoprint()
com unicode.
Procurei escrever unicode, por exemploessa questã explica que você não pode escrever caracteres unicode no console não unicode. No entanto, no meu caso, a saída é dada ao Apache e tenho certeza de que é capaz de lidar com texto unicode. Por alguma razão, no entanto, ostdout
do meu script da web está emascii
.
Obviamente, se eu estivesse abrindo um arquivo para me escrever, faria algo como
open(filename, 'w', encoding='utf8')
mas desde que recebi um fluxo aberto, comecei a usar
sys.stdout.buffer.write(mytext.encode('utf-8'))
e tudo parece funcionar. Isso viola alguma regra de bom comportamento ou tem consequências indesejadas?