Ci sono due modi per cambiare è:
1) (solo Linux) export LC_CTYPE=en_US.UTF8
prima di lanciare pitone:
$ LC_CTYPE=C python -c 'import sys; print(sys.getfilesystemencoding())'
ANSI_X3.4-1968
$ LC_CTYPE=C.UTF-8 python -c 'import sys; print(sys.getfilesystemencoding())'
UTF-8
noti che LANG serve come valore di default per LC_CTYPE se non è set, mentre LC_ALL sostituisce sia LC_CTYPE e LANG)
2) monkeypatching:
import sys
sys.getfilesystemencoding = lambda: 'UTF-8'
Entrambi i metodi consentono a funzioni come os.stat
di accettare stringhe unicode (python2.x). Altrimenti queste funzioni generano un'eccezione quando vedono simboli non ascii nel nome file.
fonte
2015-07-31 20:13:47
metodo 1 non funzionante o me – sureshvv
@sureshvv Qual è il tuo sistema operativo? –
Ubuntu 16.04. Dovevo aggiungere LANG = en_US.UTF8 a/etc/environment e riavviare. – sureshvv