Problème d'encodage de caractères

Le problème exposé dans ce sujet a été résolu.

Bonjour,

J’ai créé une fonction save qui me permet d’enregistrer au format XML un objet ElementTree.Element. J’ai rajouté à cette fonction la possibilité d’encoder les données et de formater le XML. Seulement, mes caractères accentués apparaissent avec un , ce qui est un soucis d’encodage. Voici la fonction :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
from base64 import b64encode
from xml.etree.cElementTree import tostring
from xml.dom import minidom
from zlib import compress

def save(node, path="project.xml", encode=True, beautify=False):
    to_write = b"<?xml version='1.0' encoding='utf-8'?>\n"
    to_write += tostring(node.export_xml(), encoding="utf-8")

    if encode:
        to_write = b64encode(compress(to_write)).decode("utf-8")
    else:
        to_write = to_write.decode("utf-8")
        if beautify:
            to_write = minidom.parseString(to_write).toprettyxml(indent="  ")

    with open(path, "w") as f:
        f.write(to_write)

Je précise que j’utilise Python 3.6 et que mon éditeur de code (VS Code) est bien en UTF-8.

Merci pour votre aide !

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte