Доступ к Unicode-строкам MATLAB из C

Как я могу получить доступ к базовым данным Unicode строк MATLAB через интерфейсы MATLAB Engine или MEX C?

Вот'Это пример. Позволять's помещает символы Unicode в кодированный файл UTF-8 test.txt, а затем читает его как

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

в MATLAB.

Теперь, если я сначала сделаюfeature('DefaultCharacterSet', 'UTF-8')затем из CengEvalString(ep, "s")затем в качестве вывода я получаю текст из файла в формате UTF-8. Это доказывает, что MATLAB хранит его как Unicode внутри. Однако если я сделаюmxArrayToString(engGetVariable(ep, "s"))Я понимаю чтоunicode2native(s, 'Latin-1') дал бы мне в MATLAB: все не латинские-1 символы заменены на код символа 26. Мне нужно получить доступ к базовым данным Unicode в виде строки C в любом формате Unicode (UTF-8, UTF-16 и т. д.) и сохранение символов не-Latin-1.Это возможно?

Моя платформа - OS X, MATLAB R2012b.

Приложение: Theдокументация прямо заявляет, что[mxArrayToString ()] поддерживает многобайтовые кодированные символы "Тем не менее, он все еще дает мне приближение только к латинице 1 к исходным данным.

Ответы на вопрос(1)

Ваш ответ на вопрос