[Python] Visualizzazione caratteri errata nella console di Windows con Python 3.1 e Windows 7

Daniele Varrazzo piro a develer.com
Ven 1 Apr 2011 11:04:32 CEST


On Fri, 1 Apr 2011 10:35:33 +0200 (CEST), "ceccherinir a libero.it"
<ceccherinir a libero.it> wrote:
> Stamani ho fatto altre prove e sono ancora piu' confuso,
> ho provato a fare una prova con Python 2.7 inserendo come
> prima linea
> 
> # -*- coding: cp850 -*-
> print("8-Rømer     (ºRø)\n")
> 
> e poi ho creato l'eseguibile e cosi funziona (usando cxfreeze 4.2.2)
> 
> allora ho riprovato la stessa cosa con Python 3.1 (usando prima cxfreeze
> 4.2.3 
> e poi anche ho provato la 4.2.2)
> ma non funziona

Tanto per capire con chi stai parlando, vuoi provare a stampare il valore
di sys.getsystemencoding() e sys.getfilesystemencoding() nei diversi
ambienti (freezato e non). Il secondo dovrebbe essere sempre utf8, di
solito è il primo a dare problemi.

In Python 2 se usi

> # -*- coding: cp850 -*-
> print("8-Rømer     (ºRø)\n")

ma il tuo editor è settato con un'altra cosa, quello che leggi potrebbe
essere una bugia. Prova a stampare non solo questa frase, ma anche il suo
repr() per vedere se i byte che stai mandando in stdout sono quelli
giusti.

-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com



Maggiori informazioni sulla lista Python