这篇文档只是介绍了一种方法,没有什么高深的技术原理,轻点喷。
前言
Emmmm,就我目前了解和自己经历的,matlab的字符显示问题时困扰很多使用matlab进行相关操作的同学。一搜索 matlab 中文乱码
等关键词的一大堆回答,有的答案能够解决你的问题,有的答案不能够解决你的问题。
我使用的是Matlab2018a,这次我因为图窗里的图形的title显示中文乱码(我之前调教好了的,可能因为我修改字体为Monospaced
了),所以有进行了搜索一番。因为了解不深,在尝试了我搜索到的方法后,误打误撞的在官方文档里解决了我的问题。因为是在官方文档里看到的,所以我觉得有必要介绍一下(我没看其他博客/回答里有人说这个方法,赶紧发一个)。
一般方法
- 1.电脑控制面板,
时钟和区域
->区域
->更改日期、时间、或数字格式
->管理
进行设置为Chinese(Simplified,China).
,具体查看最下面的ref-1
- 2.
title('Test','FontName','STFangSong');
,具体查看最下面的ref-2
- 3.
set(gca,'Fontname','Monospaced');
,具体查看最下面的ref-3
- 4.修改软件目录下的
lcdata.xml
的内容,具体查看最下面的ref-4
解决我对问题的方法
我在看完ref-4
后,他说我猜测matlab硬编码了locale列表,而不是查询lcdata.xml.其内部的locale格式
,也就是说需要软件他自己来解决,已经集成到程序中了。
解决我对问题的方法就是在matlab的命令行里使用slCharacterEncoding()
语句。具体内容参考官方文档ref-5
。
下面是我的命令行内容
>> current = slCharacterEncoding()
current =
'UTF-8'
>> slCharacterEncoding('US-ASCII')
>> slCharacterEncoding('UTF-8')
>> current = slCharacterEncoding()
current =
'UTF-8'
我之前有修改lcdata.xml
文件内容,所以是utf-8,但是修改的是编码,解码可能没有修改,导致不统一,上面的来回重置,应该是程序同步了,具体发什么了什么我也不清楚(滑天下之大稽),再次打开时发现有问题,可以重复使用,当然也可以设置在matlab启动时自动更改,具体看ref6
。如果没有解决问题,就发挥你的强大的搜索功能和理解功能吧。如果解决了,麻烦点个赞。有啥问题可以在下面评论流言。就这样了。
Ref
1.如何解决 Matlab 画图时中文显示乱码的问题? - 张红亮的回答 - 知乎
https://www.zhihu.com/question/20757354/answer/121977763
2.如何解决 Matlab 画图时中文显示乱码的问题? - 刘果的回答 - 知乎
https://www.zhihu.com/question/20757354/answer/82649615
3.如何解决 Matlab 画图时中文显示乱码的问题? - alando的回答 - 知乎
https://www.zhihu.com/question/20757354/answer/113217968
4.https://www.cnblogs.com/leoking01/p/8269516.html
5.https://ww2.mathworks.cn/help/simulink/slref/slcharacterencoding.html
6.https://ww2.mathworks.cn/help/matlab/matlab_env/startup-options.html#brlkmbe-1