MATLAB2017b中文注释显示乱码问题(win10 x64
2018-07-08 本文已影响57人
yetwanng
今天本来打算写个用MATLAB批量修改文件夹里面的文件名字的小tip,但是一打开以前写过的程序,突然发现里面的中文注释显示不对了,大概是下图这种样子:
中文注释乱码
这让有点小强迫症的我受不了,然后就想着改正它,开始想着以为是编辑器的编码格式不对,于是把之前的m文件用txt开了一下然后改了一下编码格式,另存了一下,发现并没有卵用,然后就上网搜了一下,发现各种方法都有。但是基本都是一样,没卵用!最后在自己的摸索下终于把问题解决了。(觉得太长不想看的请直接看最后的总结)
1. 靠谱一点的是这样的:
先在命令窗口执行命令:
然后发现是系统的locale设置和user的不一致,也就是你系统的都是英文的但是你这个文件里面有中文的编码,所以显示就不对了。我执行的结果也是这样的。
然后该教程(参考1)的后面就是教你怎么去设置相关的参数,然后最后解决问题,可是我都按照他的来了,却不行。
2.还有这种玄学的
反正我就是不知道什么原因,照我这么做一遍就对了(参考2)
最后总结一句话:matlab中文乱码,请先在记事本里输入中文,然后复制到matlab里,只需要第一次这样做了,以后你就可以在任意m文件的任意一行输入中文注释了。不要问我为什么,因为我也不知道。。
然并卵。。。
3. 接近答案的方法
还有一种就是给我提供了解决问题思路的,很接近答案的方法(参考3)。
在经过多次查找方法未果之后,终于发现了MATLAB读取区域设置只是跟系统区域中的“格式(Format)”设置有关:
当格式设置成英文的时候,MATLAB便会读取相应的区域。所以解决方法便是在格式中选择"Chinese (Simplified, China)",所有乱码便解决了。
这个确实是对的,只不过只这么做的话还不够,还要另外设置一个选项:
设置额外的编码语言将Administrative选项的Language for non-Unicode programs 设置成简体中文就ok了
Beta选项不要勾
接下来我按照参考1的方法在此检验了一下自己MATLAB的locale值显示如下,警告那一栏就已经没了。然后点开有中文注释的程序,显示正常了。
>> feature('locale')
ans =
包含以下字段的 struct:
ctype: 'zh_CN.GBK'
collate: 'zh_CN.GBK'
time: 'zh_CN.GBK'
numeric: 'en_US_POSIX.GBK'
monetary: 'zh_CN.GBK'
messages: 'zh_CN.GBK'
encoding: 'GBK'
terminalEncoding: 'GBK'
jvmEncoding: 'GBK'
status: 'MathWorks locale management system initialized.'
warning: ''
显示正常后的中文注释
总结
- 遇上英文版的64位的win10系统下装的英文版MATLAB编辑器中中文注释显示不对的情况,可以先用feature('locale')命令检验一下是否是自己系统的locale settling和软件的user settling不一致导致的。是的话就需要修改参数。
- 将自己电脑系统的时区格式设置成中文的格式,另外在Administrative选项下的Language for non-Unicode programs选项中修改系统的locale值为简体中文,注意不要勾选beta选项,不然会导致一些其他的带中文显示的程序出现异常。