Browse Source

CURA-3500 Make sure that material XMLs have utf-8 encoding

Lipu Fei 8 years ago
parent
commit
18cf9e3172
1 changed files with 4 additions and 3 deletions
  1. 4 3
      plugins/XmlMaterialProfile/XmlMaterialProfile.py

+ 4 - 3
plugins/XmlMaterialProfile/XmlMaterialProfile.py

@@ -248,11 +248,12 @@ class XmlMaterialProfile(InstanceContainer):
 
 
         root = builder.close()
         root = builder.close()
         _indent(root)
         _indent(root)
-        stream = io.StringIO()
+        stream = io.BytesIO()
         tree = ET.ElementTree(root)
         tree = ET.ElementTree(root)
-        tree.write(stream, encoding="unicode", xml_declaration=True)
+        # this makes sure that the XML header states encoding="utf-8"
+        tree.write(stream, encoding="utf-8", xml_declaration=True)
 
 
-        return stream.getvalue()
+        return stream.getvalue().decode('utf-8')
 
 
     # Recursively resolve loading inherited files
     # Recursively resolve loading inherited files
     def _resolveInheritance(self, file_name):
     def _resolveInheritance(self, file_name):