Linux下Matlab中文乱码的问题根源在于缺乏中文字体文件和相关的配置。
由于Linux下的Matlab使用自己的JRE运行,而其默认使用的字体相当有限,没有可用于中文显示的字体,所以要解决标题所述问题,需为Matlab的JRE添加中文字体的配置信息。
解决步骤:
1、找到Matlab自带JRE保存字体文件的目录,/usr/local/MATLAB/MATLAB_Production_Server/R2013a/sys/java/jre/glnxa64/jre/lib/fonts
2、将中文字体文件(win10 msyh.ttf,myyhbd.tff)拷贝至此目录。(此中文字体文件可放在当前目录,也可放在系统的字体目录中,只要能被Matlab找到即可)
3、在此目录下运行 sudo mkfontscale 命令,为当前目录下所有字体文件建立字体列表文件fonts.scale。
4、使用新生成的带中文字体配置信息的fonts.scale替换Matlab自带JRE使用的字体列表文件fonts.dir。
5、运行Matlab,在Preferences中找到Fonts,然后把Desktop code font和Desktop text font的选项修改为Microsoft Yahei就可以了,当即生效。
6、注意:windows下Matlab的.m文件中的中文编码默认是GB不是utf8,因此window下的.m文件直接在Linux中打开就是乱码,要么转码,要么使用远程桌面的文本复制就可以自动转换。