MATLAB2017b中文注释显示乱码问题(win10 x64

2018-07-08  本文已影响57人  yetwanng

今天本来打算写个用MATLAB批量修改文件夹里面的文件名字的小tip,但是一打开以前写过的程序,突然发现里面的中文注释显示不对了,大概是下图这种样子:


中文注释乱码

这让有点小强迫症的我受不了,然后就想着改正它,开始想着以为是编辑器的编码格式不对,于是把之前的m文件用txt开了一下然后改了一下编码格式,另存了一下,发现并没有卵用,然后就上网搜了一下,发现各种方法都有。但是基本都是一样,没卵用!最后在自己的摸索下终于把问题解决了。(觉得太长不想看的请直接看最后的总结

1. 靠谱一点的是这样的:

先在命令窗口执行命令:

执行feature命令
然后发现是系统的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: ''
显示正常后的中文注释

总结

  1. 遇上英文版的64位的win10系统下装的英文版MATLAB编辑器中中文注释显示不对的情况,可以先用feature('locale')命令检验一下是否是自己系统的locale settling和软件的user settling不一致导致的。是的话就需要修改参数。
  2. 将自己电脑系统的时区格式设置成中文的格式,另外在Administrative选项下的Language for non-Unicode programs选项中修改系统的locale值为简体中文,注意不要勾选beta选项,不然会导致一些其他的带中文显示的程序出现异常。
上一篇下一篇

猜你喜欢

热点阅读