Fix T72789: Mantaflow cache doesn't work with non-latin cache directory

Root of the problem was that Manta's Python API was converting to and from Latin1 instead of UTF8.
This commit is contained in:
Sebastián Barschkis 2020-01-23 17:12:19 +01:00
parent 517870a4a1
commit 39ae4804a8
Notes: blender-bot 2023-02-14 10:21:15 +01:00
Referenced by issue #93566, Mantaflow: problems with the German special Character (in German: "Umlaute" "ÖÄÜ") in Foldername
Referenced by issue #72789, Mantaflow cache doesn't work with non-latin cache directory
1 changed files with 10 additions and 0 deletions

View File

@ -144,7 +144,12 @@ template<> int fromPy<int>(PyObject *obj)
template<> string fromPy<string>(PyObject *obj)
{
if (PyUnicode_Check(obj))
#ifdef BLENDER
// Blender is completely UTF-8 based
return PyBytes_AsString(PyUnicode_AsUTF8String(obj));
#else
return PyBytes_AsString(PyUnicode_AsLatin1String(obj));
#endif
#if PY_MAJOR_VERSION <= 2
else if (PyString_Check(obj))
return PyString_AsString(obj);
@ -155,7 +160,12 @@ template<> string fromPy<string>(PyObject *obj)
template<> const char *fromPy<const char *>(PyObject *obj)
{
if (PyUnicode_Check(obj))
#ifdef BLENDER
// Blender is completely UTF-8 based
return PyBytes_AsString(PyUnicode_AsUTF8String(obj));
#else
return PyBytes_AsString(PyUnicode_AsLatin1String(obj));
#endif
#if PY_MAJOR_VERSION <= 2
else if (PyString_Check(obj))
return PyString_AsString(obj);