Хранить арабские буквы в массив символов Matlab

Я пытаюсь сделать массив арабских букв, зациклить его и записать буквы в текстовом файле. Проблема в том, что Matlab не может распознать это, он дает '?' вместо букв. Я использую Matlab 2016a.

% slCharacterEncoding()
fid = fopen('nv.txt', 'w+', 'n', 'UTF-8');
words = ['ا','ل','ل','ه',' ', 'و'];
for i=1:length(words)
    w=words(1,i);
    fprintf(fid,'%s',w);
end
fclose(fid);

Странно то, что это работает, когда я вхожу в words массив из команды и прокомментируйте его строку из кода.

1 ответ

Решение

Один обходной путь будет использовать uint16 чтобы получить их 16-битное целое значение в командном окне, т.е.

>> words = ['ا','ل','ل','ه',' ', 'و'];
>> uint16(words)

ans =

   1575   1604   1604   1607     32   1608

Теперь подставим words = char([1575 1604 1604 1607 32 1608]); в вашем м-файле.

Другие вопросы по тегам