2017-09-10 13 views
0

J'essaye d'écrire dans un fichier.Python donne une erreur unicode lors de l'écriture dans le fichier

filename = "test.txt" 
string = "Niñas and niños" 

with open(filename, 'w') as element: 
      element.write(string) 

Cela renvoie l'erreur suivante:

"Traceback (most recent call last): 
    File "/Users/alex/Documents/Python/filewriter.py", line 5, in <module> 
    element.write(string) 
UnicodeEncodeError: 'ascii' codec can't encode character '\xf1' 
in position 2: ordinal not in range(128)" 

J'utilise la dernière version de Python, dernière version de MacOS et SublimeText3 que mon rédacteur en chef.

Quelqu'un a une idée de ce qui se passe?

+0

Votre code fonctionne bien pour moi tel quel (Python 3.6.1 sur Mac OS). Avez-vous des variables d'environnement inhabituelles sur votre système en ce qui concerne l'encodage? Je n'en ai pas, et vous ne devriez pas en avoir besoin. Vous ne devriez pas avoir besoin de PYTHONIOENCODING si vous manipulez le codage/décodage correctement dans votre logiciel (je déconseille cette béquille). – FMc

Répondre

1

Ouvrez le fichier avec encodage UTF-8, comme ceci:

with open(filename, 'w', encoding='utf-8') as element: 
+0

Fonctionne avec brio! Merci! –