Подтвердить что ты не робот

Символы Unicode в исходных файлах MATLAB

Я хотел бы использовать символы Unicode в комментариях в исходном файле MATLAB, Кажется, это работает, когда я пишу текст; однако, если я закрою файл и перезагружу его, "необычные" символы превратятся в вопросительные знаки. Я предполагаю, что MATLAB сохраняет файл как ASCII.

Есть ли способ сказать MATLAB вместо UTF-8?

4b9b3361

Ответ 3

Только для Mac OSX!

Как я нашел решение, которое работало в моем случае, я хочу поделиться им.

Mathworks советует здесь использовать slCharacterEncoding(encoding) для изменения кодировки по желанию, но для OSX это не решает проблему точно так же, как feature('DefaultCharacterSet') в принятом ответе этого не делает. Что помогло мне получить набор кодировок UTF-8 для открытия и сохранения файлов .m, была следующая ссылка на ответы MATLAB: https://www.mathworks.com/matlabcentral/answers/12422-macosx-encoding-problem

Matlab, кажется, игнорирует любое значение, установленное в slCharacterEncoding(encoding) или feature('DefaultCharacterSet'), но использует область, заданную в Системных настройках → Язык и Регион. После проверки, какая область выбрана в нашем случае, тогда можно определить фактическое кодирование в скрытом файле конфигурации в

 $matlabroot/bin/lcdata.xml

Этот каталог можно открыть, нажав на приложения и после щелчка правой кнопкой мыши по Matlab, выбрав "Показать содержимое пакета", как на снимке экрана (здесь, на немецком языке).

Содержимое пакета

Например, для немецкого стандарта по умолчанию ISO-8859-1 его можно отрегулировать, изменив соответствующую строку в файле lcdata.xml:

 <locale name="de_DE" encoding="ISO-8859-1" xpg_name="de_DE.ISO8859-1">

в

 <locale name="de_DE" encoding="UTF-8" xpg_name="de_DE.UTF-8">

Если выбранная область отсутствует в файле lcdata.xml, это не сработает.

Надеюсь, это поможет!

Ответ 4

Для пользователей Mac OS решение Jendker действительно помогает !!! Большое спасибо в первую очередь.

Напомним здесь.

  1. Проверьте язык по умолчанию в Matlab, введя в командной getenv('LANG'). Мой вернулся en_US.ISO8859-1.

  2. В каталоге приложения найдите Matlab, покажите содержимое его пакета. Перейдите в bin, откройте lcdata.xml как администратор, найдите соответствующее имя xpg_name, в моем случае en_US.ISO8859-1. Измените encoding в той же строке на UTF-8. Сохрани это.

  3. Перезапустите Matlab, и все готово!

Ответ 5

Представленное здесь решение работало для меня на Windows с R2018a.

Если ссылка не работает: идея состоит в том, чтобы использовать файл matlabroot/bin/lcdata.xml для настройки псевдонима для имени кодировки (некоторые пояснения можно найти в этом самом файле в комментариях):

<codeset>
  <encoding name="UTF-8">
   <encoding_alias name="windows-1252" />
  </encoding>
</codeset>

Вы бы использовали свое собственное значение вместо windows-1252, в настоящее время используемую кодировку можно получить, запустив feature('locale').

Хотя, если вы используете символы Юникода в комментариях справки, браузер справки не распознает их, а также выводит окно консоли.