文章目录
1. 按
由于平常要用到VSCode编辑和查看源码,VSCode默认以utf-8打开,而MATLAB则默认使用GBK编码读写源文件。
有时候我们需要用VSCode编辑代码(VSCode可以自动补全代码,高亮效果也优于MATLAB自带的编辑器,其实MATLAB自带的源码编辑器效果很差,连基本的自动补全都没有,严重影响开发效率。),这时候可能会产生乱码,本文旨在解决此问题。
2. 将VSCode设置成自动推导文件的编码
推荐使用此方法,这也是本人一直使用的方法,只需要简单地改一下VSCode,不让它死搬硬套,每次都以UTF-8编码读取文件就可以了,不需要动matlab的字符集编码设置。
参考:https://blog.csdn.net/COCO56/article/details/100058599
3. 将matlab代码默认的编辑器设为VSCode
- 在设置里将文本编辑器改成VSCode
- 搜索并安装matlab插件,这样编起来代码自动补全,效果比MATLAB自带的编辑器要好得多。
VSCode 安装帮助:https://blog.csdn.net/COCO56/article/details/96423586
4. 不推荐使用的方法
下面方法是参考的别人的,实测效果很差,只是编辑器不再乱码了,运行代码时如果要打印中文字符,或者画图时设个中文标题、中文标签什么的,依然乱码,因此极不推荐浪费时间这样做。
4.1. 修改matlab默认的字符集编码为UTF-8
- 打开X:\Program Files\Polyspace\R2019a\toolbox\local\matlabrc.m(注:最开头的“X”是你所安装的位置盘符)文件,在尾部追加一句:
详细参考:https://blog.csdn.net/COCO56/article/details/99630959slCharacterEncoding('UTF-8')
- slCharacterEncoding(‘UTF-8’)指令用于运行utf-8编码的源码文件时不会打印出来乱码,编辑代码时仍会出现乱码,因此需要修改一下默认的源码编辑器为VSCode,其实MATLAB自带的源码编辑器效果很差,连基本的自动补全都没有,严重影响开发效率。
- 另外本方法不推荐使用,打印时虽然可以正常打印中文字符,但是如果画图时设个标题、标签什么的,如果包含中文的话也是会乱码的。
4.2. MATLAB 2016b
- 在命令窗口输入命令:feature(‘locale’)可以看到多是用 GBK 进行编码。如果想以 utf-8 编码,而不是 GBK 编码的话,请编辑 matlab 的 locale 数据库文件 lcdata.xml (matlab bin 目录下)
- 删除lcdata.xml文件中的以下代码:
<encoding name="GBK"> < encoding_alias name="936"> </encoding>
- 将
改为<encoding name="UTF-8"> <encoding_alias name="utf8"/> </encoding>
<encoding name="UTF-8"> <encoding_alias name="utf8"/> <encoding_alias name="GBK"/> </encoding>
- 重启 matlab 之后,即以 utf-8 编码
4.3. matlab2017以上
在R2017及以上的版本中
lcdata.xml 是仅包含注释的空文件,需要将 lcdata_utf8.xml 重命名为 lcdata.xml ,然后进行修改。
4.4. 本方法成功的标志
运行slCharacterEncoding得到’UTF-8’