The only place I’m aware of where “char *” is used for data is the interface to vtkCharArray. I don’t know if vtkCharArray is used much outside of legacy code.
The Python wrappers check UTF8 validity via PyUnicode_FromStringAndSize()
, which raises a Python exception if the input isn’t valid.
Python byte arrays are how Python handles strings in other encodings. For example, if someone is using VTK-Python on a Windows box with CP1252 as the active code page, then right now the only way to specify a filename with accented characters is to use Python to generate a bytes() object with CP1252 encoding and pass that bytes() object to SetFileName().
If VTK goes full UTF8, then this will no longer be necessary, since VTK will always use the Unicode versions of the Windows APIs.