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

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

Вот пример. Давайте поместим символы Юникода в кодированный файл 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)

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