2017-10-16 1 views
2

J'essaie d'écrire un script Python qui utilise les informations UTF-8, mais je reçois des messages SyntaxError: Non-ASCII character.Python ne pas accepter le codage UTF-8

On dirait que je peux résoudre ce problème en ajoutant ce qui suit au sommet de mon script:

#!/usr/bin/python 
# coding: utf8 

Mais je reçois ascii quand je lance ce script:

#!/usr/bin/python 
# coding: utf8 
import sys 
print sys.getdefaultencoding() 

Aussi, je ai essayé avec les mêmes résultats:

#!/usr/bin/python 
# -*- coding: utf-8 -*- 

Pourquoi mon script en utilisant UTF-8?

+2

Le script obtient l'encodage d'exécution, le commentaire décrit le codage de la source. Vous devriez publier un exemple du code qui génère l'erreur et l'erreur spécifique, voir [mcve] – pvg

+1

Que * exactement * essayez-vous de faire? "J'essaie d'écrire un script Python qui utilise des informations UTF-8" est assez vague. –

+1

Vous voudrez peut-être voir [obtenir l'encodage spécifié dans magic line/shebang (à partir du module)] (https://stackoverflow.com/questions/38374489/get-encoding-specified-in-magic-line-shebang-from- dans-module), dans lequel vous verrez que "Notez que' sys.getdefaultencoding() 'n'a * rien * à faire avec la façon dont le code source Python est décodé." (Martijn Pieters, 2016). – Kanak

Répondre

2

Vous pouvez le mettre à utf-8 comme:

import sys 
reload(sys) 
sys.setdefaultencoding("utf8") 
+0

J'aime cette réponse car elle mentionne une fonction qui est souvent manquée dans les docs. –

+0

'AttributeError: le module 'sys' n'a pas d'attribut 'setdefaultencoding' dans Python 3.6 –