fix unicode/utf-8 encoding problems

This commit is contained in:
wmayer 2016-09-24 16:48:30 +02:00
parent 816d2ee288
commit ee07ff6231
4 changed files with 11 additions and 7 deletions

View File

@ -205,11 +205,14 @@ PyObject* Application::sNewDocument(PyObject * /*self*/, PyObject *args,PyObject
{
char *docName = 0;
char *usrName = 0;
if (!PyArg_ParseTuple(args, "|ss", &docName, &usrName)) // convert args: Python->C
return NULL; // NULL triggers exception
if (!PyArg_ParseTuple(args, "|etet", "utf-8", &docName, "utf-8", &usrName))
return NULL;
PY_TRY {
return GetApplication().newDocument(docName, usrName)->getPyObject();
App::Document* doc = GetApplication().newDocument(docName, usrName);
PyMem_Free(docName);
PyMem_Free(usrName);
return doc->getPyObject();
}PY_CATCH;
}

View File

@ -221,8 +221,8 @@ def decodeName(name):
def open(filename):
docname=os.path.split(filename)[1]
doc=FreeCAD.newDocument(docname)
if (docname[-4:] == "gcad"): doc.Label = decodeName(docname[:-5])
else: doc.Label = decodeName(docname[:-4])
if (docname[-4:] == "gcad"): doc.Label = docname[:-5]
else: doc.Label = docname[:-4]
parse(filename,doc)
doc.recompute()

View File

@ -1176,7 +1176,7 @@ def getContents(filename,tag,stringmode=False):
def open(filename):
docname=os.path.split(filename)[1]
doc=FreeCAD.newDocument(docname)
doc.Label = decodeName(docname[:-4])
doc.Label = docname[:-4]
parser = xml.sax.make_parser()
parser.setFeature(xml.sax.handler.feature_external_ges, False)
parser.setContentHandler(svgHandler())

View File

@ -21,6 +21,7 @@
#***************************************************************************
import FreeCAD, Material
import os
__title__="FreeCAD material card importer"
__author__ = "Juergen Riegel"
@ -46,7 +47,7 @@ def open(filename):
"called when freecad wants to open a file"
docname = os.path.splitext(os.path.basename(filename))[0]
doc = FreeCAD.newDocument(docname)
doc.Label = decode(docname)
doc.Label = docname
FreeCAD.ActiveDocument = doc
read(filename)
return doc