2011-02-13 23 views
24

Me gustaría usar Unicode caracteres en los comentarios en un archivo fuente MATLAB. Esto parece funcionar cuando escribo el texto; sin embargo, si cierro el archivo y lo vuelvo a cargar, los caracteres "inusuales" se han convertido en signos de interrogación. Supongo que MATLAB está guardando el archivo como ASCII.Caracteres Unicode en los archivos fuente de MATLAB

¿Hay alguna manera de decirle a MATLAB que use UTF-8 en su lugar?

Respuesta

7

How the MATLAB Process Uses Locale Settings muestra cómo configurar la codificación para diferentes plataformas. Utilice

feature('DefaultCharacterSet') 

Usted puede leer más acerca de esta función no documentada here. Vea también este Matlab Central thread para otras opciones.

+1

Gracias. La página que vinculó dice que, en Mac, Matlab decide una codificación basada en la configuración de idioma del sistema e ignora la variable de entorno LANG. Traté de crear un archivo 'startup.m' que contuviera el comando' slCharacterEncoding ('UTF-8') ', pero eso no pareció ayudar, además de hacer que Matlab se cuelgue en la fase de" inicialización "al inicio. En cualquier caso, incluso con slCharacterEncoding establecido en 'UTF-8', los archivos de script todavía parecen estar codificados usando ISO-8859-1. ¿Alguna otra idea? – LaC

+0

@LaC: Desafortunadamente, no tengo ni idea de cómo configurar la codificación en el inicio. Parece que hay margen de mejora. – zellus

+4

Estoy aceptando esta respuesta, aunque el problema sigue sin resolverse, porque no parece que haya ninguna solución. – LaC

0

Mac OSX solamente!

Como encontré la solución que funcionó en mi caso, quiero compartirla.

Mathworks aconseja utilizar hereslCharacterEncoding(encoding) con el fin de cambiar la codificación como se desee, pero para el OSX esto no resuelve el problema exactamente como el feature('DefaultCharacterSet') en respuesta aceptada no lo hace. Lo que me ayudó a conseguir la codificación UTF-8 conjunto para abrir y guardar archivos .m fue el siguiente enlace en MATLAB respuestas: https://www.mathworks.com/matlabcentral/answers/12422-macosx-encoding-problem

Matlab parece ignorar cualquier valor establecido en slCharacterEncoding(encoding) o feature('DefaultCharacterSet') pero utiliza el juego de región en Preferencias del Sistema -> Idioma & Región. Después se selecciona la comprobación de qué región en nuestro caso, entonces es posible definir la codificación real del archivo de configuración oculto en

$matlabroot/bin/lcdata.xml 

Este directorio puede ser abierto por llegar a las aplicaciones y después haga clic derecho en Matlab seleccionando Mostrar Contenido del paquete como en la captura de pantalla (aquí en alemán)

Package Contents

por ejemplo, para predeterminado alemán ISO-8859-1 es posible ajustarlo cambiando la línea correspondiente en el archivo lcdata.xml:

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

a:

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

Si la región que se selecciona no está presente en el archivo lcdata.xml esto no funcionará.

Espero que esto ayude!

Cuestiones relacionadas