解决Linux下Matlab中文显示乱码的问题
问题原因
在Windows下编写的Matlab代码,到了Linux下,中文全部变成了乱码
查看字符编码集发现,在Win下,Matlab编辑器和命令行都采用了GB2312编码,而在Linux中,Matlab采用了UTF-8编码,编码集不同,导致出现乱码
解决方法
1. 修改Matlab配置文件
网上有修改Matlab配置文件的方法,但是我尝试之后没有效果(Matlab2018a for Linux),因此不再详细说。
2. 修改文件字符集
修改文件字符集是一个绝对有效的方法,在Win下转成GB2312,在Linux下转成UTF-8,但是很多个文件一个一个修改起来太麻烦了,有什么解决办法呢?
下面隆重介绍一个批量修改文件字符集的工具:Encodex
Encodex
项目用python编写,被打包成了Windows和Linux下的可执行文件,用它修改大量文件的字符集可快多啦。
下面介绍下工具的用法
1. 配置文件
- exclusion: 需要排除的目录或文件(0~n)
- subfix: 需要转码的文件扩展名(1~n, 默认"m"),可使用通配符"*"(不推荐)
- fromEncode: 需要转码的文件的原字符集(1~n, 默认"gbk"),可使用通配符"*"(不推荐)
- toEncode: 需要将文件转成的字符集(1, 默认"utf-8")
[config]
exclusion=
subfix=m
fromEncode=gbk
toEncode=utf-8
2. 用法
- 首先按照需求在config.ini中进行配置
- 执行指定的release包或者直接运行python脚本
- 输入需要修改字符集的文件或者文件夹的路径(相对or绝对)
- 敲回车,程序自动执行
- 执行完成后,再敲回车就可以退出程序了
3. 项目地址
项目托管在github上:Encodex
项目是开源的,有需要的话可以在现有的基础上修改,不想修改可以直接用release版本。