Accediendo a las cadenas Unicode de MATLAB desde C

¿Cómo puedo acceder a los datos Unicode subyacentes de las cadenas de MATLAB a través de las interfaces de MATLAB Engine o MEX C?

Aquí hay un ejemplo. Pongamos los caracteres Unicode en un archivo codificado en UTF-8 test.txt, luego lo leemos como

fid=fopen('test.txt','r','l','UTF-8');
s=fscanf(fid, '%s')

en MATLAB.

Ahora si primero lo hagofeature('DefaultCharacterSet', 'UTF-8'), luego de CengEvalString(ep, "s"), luego como salida recupero el texto del archivo como UTF-8. Esto demuestra que MATLAB lo almacena como Unicode internamente. Sin embargo si lo hagomxArrayToString(engGetVariable(ep, "s")), Entiendo queunicode2native(s, 'Latin-1') me daría en MATLAB: todos los caracteres que no sean Latin-1 fueron reemplazados por el código de carácter 26. Lo que necesito es obtener acceso a los datos Unicode subyacentes como una cadena C en cualquier formato Unicode (UTF-8, UTF-16, etc.) , y conservando los caracteres no latinos-1.es posible?

Mi plataforma es OS X, MATLAB R2012b.

Anexo: Eldocumentación declara explícitamente que "[mxArrayToString ()] admite caracteres codificados multibyte", pero aún así solo me proporciona una aproximación de Latin-1 a los datos originales.

Respuestas a la pregunta(1)

Su respuesta a la pregunta