Matlab打开.m文件出现中文乱码问题,是因为Matlab存在两种编码格式:GBK和UTF-8,而不同版本的Matlab编码格式可能不统一,因此在不同版本的Matlab打开文件,由于编码格式的改变,会导致注释乱码。
1.查看你的Matlab的文件编码方式,在Matlab的命令行窗口输入feature('locale') ,如下图,可以看到默认编码为GBK,那问题就变成了将Matlab的文件编码方式GBK修改成UTF-8;
2.找到你的Matlab安装目录bin文件夹下的lcdata_utf8.xml文件,用记事本打开另存为lcdata.xml文件。这里发现lcdata.xml已存在,不进行替换,修改一下原lcdata.xml的名字后再将lcdata_utf8.xml文件另存为lcdata.xml文件。
3.记事本打开lcdata.xml文件,ctrl+f查找<encoding name="GBK">,找到这一部分;
将 这一小段代码删除
4.查找<encoding name="UTF-8">,找到这一部分;
添加语句 <encoding_alias name="GBK"/>如下所示
5.保存文件,关闭Matlab再重新打开,编码正确了!
同样的如果UTF-8编码的Matlab打开中文乱码,只需要将UTF-8转成GBK编码格式就可以啦,同样的思路也就是将<encoding name="UTF-8">部分的代码删除,在<encoding name="GBK">那一部分添加<encoding_alias name="utf8"/>就好了。
——————————————————————————————————————————
前面使用的这种方法可以解决中文乱码的错误,但是后来发现在命令行窗口的中文字符可能会乱码,上面的方法改变了jvmEncoding=utf8但是其他编码还是GBK,这种不一致可能会带来很多冲突,所以以上方法要慎用,不是很推荐。个人踩完雷之后,于是乎,又总结了另外两种方法。
第二种简单粗暴的方法,在已经确保MATLAB编码为GBK但是.M文件编码为UTF8之后,用计算机自带的记事本打开该M文件,选择“另存为”,修改编码方式为“ANSI”,保存文件后重新用IDE打开.M文件即可。这种不适用大批量多个文件,一个一个打开很费劲,而且可能还会存在遗漏。
第三种办法,如果你有notepad++的话,就更方便啦!建议写代码的朋友人手备一个,慢慢你会发现离不开他。
1)首先,菜单栏选择文件>打开文件夹作为工作区,把你代码所在的整个文件夹全放进去。
2)选中.m文件,菜单栏查看该.M文件的编码,若为UTF-8编码或其他不能正常显示的编码方式,两种选择,编码>转成ANSI编码或编码>编码字符集>中文>GB2312(简体中文),检查一遍文件夹中所有文件编码格式,转化保存。
3)matlab打开,所有文件的中文字符均显示正常且命令行窗口中文显示也正常。