Je voudrais utiliser Unicode caractères dans les commentaires d'un fichier MATLAB source. Cela semble fonctionner lorsque j'écris le texte. Cependant, si je ferme le fichier et le recharge, des caractères "inhabituels" ont été transformés en points d'interrogation. J'imagine que MATLAB enregistre le fichier au format ASCII.
Y a-t-il un moyen de dire à MATLAB d'utiliser UTF-8 à la place?
Comment le processus MATLAB utilise les paramètres régionaux montre comment définir le codage pour différentes plates-formes. Utilisation
feature('DefaultCharacterSet')
Vous pouvez en savoir plus sur cette fonction non documentée ici . Voir aussi ceci Filetage central Matlab pour d'autres options.
Selon http://www.mathworks.de/matlabcentral/newsreader/view_thread/238995
feature('DefaultCharacterSet', 'UTF8')
changera l'encodage en UTF-8. Vous pouvez mettre la ligne ci-dessus dans votre fichier startup.m.
Mac OSX seulement!
Comme j'ai trouvé la solution qui a fonctionné dans mon cas, je veux la partager.
Mathworks conseille ici d’utiliser slCharacterEncoding(encoding)
afin de modifier l’encodage à votre guise, mais cela ne résout pas le problème sous OSX de la même manière que feature('DefaultCharacterSet')
dans la réponse acceptée ne le fait pas. Ce qui m'a aidé à obtenir le jeu de codage UTF-8 pour ouvrir et enregistrer les fichiers .m, c'est le lien suivant sur les réponses MATLAB: https://www.mathworks.com/matlabcentral/answers/12422-macosx problème de codage
Matlab semble ignorer toute valeur définie dans slCharacterEncoding(encoding)
ou feature('DefaultCharacterSet')
mais utilise la région définie dans les Préférences Système -> Langue et région. Après avoir vérifié quelle région est sélectionnée dans notre cas, il est possible de définir le codage réel dans le fichier de configuration caché dans
$matlabroot/bin/lcdata.xml
Ce répertoire peut être ouvert en accédant aux applications et en cliquant avec le bouton droit de la souris sur Matlab en sélectionnant Afficher le contenu du paquet comme sur la capture d'écran (ici en allemand).
Par exemple, pour ISO-8859-1 par défaut, il est possible de l’ajuster en modifiant la ligne correspondante dans le fichier 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">
Si la région sélectionnée n'est pas présente dans le fichier lcdata.xml, cela ne fonctionnera pas.
J'espère que cela t'aides!
La solution fournie ici a fonctionné pour moi sur Windows avec R2018a.
Dans le cas où le lien ne fonctionne pas: l'idée est d'utiliser le fichier matlabroot/bin/lcdata.xml
pour configurer un alias pour le nom d'encodage (des explications peuvent être trouvées dans ce fichier même dans les commentaires):
<codeset>
<encoding name="UTF-8">
<encoding_alias name="windows-1252" />
</encoding>
</codeset>
Vous voudriez utiliser votre propre valeur au lieu de windows-1252
, le codage actuellement utilisé peut être obtenu en exécutant feature('locale')
.
Toutefois, si vous utilisez des caractères Unicode dans les commentaires d'aide, le navigateur d'aide ne les reconnaît pas, ainsi que la sortie de la fenêtre de la console.
Pour les utilisateurs de Mac, la solution de Jendker aide vraiment !!! Merci beaucoup d'abord.
Assurez-vous de vérifier la langue par défaut dans Matlab en
getenv('LANG')
Ensuite, allez à lcdata.xml
, localisez le xpg_name
correspondant et remplacez encoding
par UTF-8
.
Maintenant, redémarrez Matlab, et tout est fait! Bravo!