Écriture de fichier UTF-8 en Python

Je suis vraiment confus avec le codecs.open function. Quand je fais:

file = codecs.open("temp", "w", "utf-8")
file.write(codecs.BOM_UTF8)
file.close()

Il me donne l'erreur

UnicodeDecodeError: 'ascii' codec ne peut pas décoder les octets 0xef en position
0: ordinal pas in range(128)

Si je fais:

file = open("temp", "w")
file.write(codecs.BOM_UTF8)
file.close()

Il fonctionne très bien.

Question est pourquoi le premier échec de la méthode? Et comment dois-je insérer le bom?

Si la deuxième méthode est la bonne manière de faire, ce que le point de l'utilisation de codecs.open(filename, "w", "utf-8")?

  • Ne pas utiliser une NOMENCLATURE en UTF-8. s'il vous Plaît.
  • Hein? Pourquoi pas?
  • La NOMENCLATURE n'est pas nécessaire en UTF-8 et seulement ajoute de la complexité (par exemple, vous ne pouvez pas simplement concaténer NOMENCLATURE avais des fichiers et de résultat avec le texte valide). Voir cette Q&A; ne manquez pas le grand commentaire sous Q
InformationsquelleAutor John Jiang | 2009-06-01