2013-03-01 11 views
8

Quando si esegue il mio script python3 dalla Sublime Text 2, il seguente errore occures:Sublime errore di codifica Text 2 con python3 costruire

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128) 

Inoltre, quando si esegue lo stesso script dal terminale, non viene visualizzato il problema .

Le impostazioni di sistema di build per Sublime è il seguente:

{ 
"cmd": ["python3", "-u", "$file"], 
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
"selector": "source.python", 
"encoding": "utf8", 
"path": "/Library/Frameworks/Python.framework/Versions/3.3/bin/" 
} 

Grazie in anticipo!

risposta

28

Dopo alcune indagini e ricerche, ho capito qual è il problema:

mancante variabile env LANG nel sottoprocesso, gestito da Sublime Text 2. ho riparato semplicemente aggiungendo la variabile LANG nelle mie impostazioni di generazione come so:

{ 
"cmd": ["python3", "-u", "$file"], 
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
"selector": "source.python", 
"env": {"LANG": "en_US.UTF-8"} 
} 
+0

Grande! Risolto il mio problema – jostyposty

+1

Fantastico! Funziona anche con Sublime Text 3 – chris838

+1

Quindi, stavo proprio per postare questa domanda di nuovo solo per fornire la risposta, ma suppongo che mi limiterò a commentare qui. Ho provato questo, e non ha funzionato. Forse, perché sto lavorando su un mac. Qual è stato il trucco per me non è l'impostazione della variabile env LANG, ma il LC_CTYPE a "UTF-8". Ho letteralmente cercato 3 ore, i segni del dente sinistro nella mia tabella e quindi perché forse questo aiuta. – Ekkstein

1

Le soluzioni di Martin hanno funzionato alla grande! In ambiente Windows/Python3.5 invece di "LANG" impostare quanto segue:

"env": {"PYTHONIOENCODING": "utf8"}