易云巢做网站公司,网站建设联系我们,视频在线观看网站怎么建设,贵州网站制作公司电话文章目录 前言首先说说说字体美化乱码到底是怎么导致的#xff1f;1 字体导致的乱码2 编码导致的乱码总结 前言 最近打开MATLAB#xff0c;又发现了一个问题#xff1a;编辑器中的中文输入在命令行或者说终端输出竟然是乱码#xff0c;然后赶紧翻阅了一下此前的博客以及未发… 文章目录 前言首先说说说字体美化乱码到底是怎么导致的1 字体导致的乱码2 编码导致的乱码总结 前言 最近打开MATLAB又发现了一个问题编辑器中的中文输入在命令行或者说终端输出竟然是乱码然后赶紧翻阅了一下此前的博客以及未发出的草稿虽然依稀记得好像遇到过但仍然没有找到一个完整的总结。于是就有了这篇博客。 声明以下内容均基于MATLAB 2019b这个版本 首先说说说字体美化 这是一切的源头依稀记得最早就是因为看不惯MATLAB丑陋的字体于是想要美化一下但无奈遇到了乱码的问题这也是本文标题的由来。
乱码到底是怎么导致的 主要是两种原因编码和字体。所谓编码就是说软件以不符合原文本或文本文件的编码方式进行解析文字从而导致乱码一般是中文乱码而所谓字体即所使用的字体中不包含中文字体从而导致中文乱码因为有很多字体是只包含一种语言的。
1 字体导致的乱码 对代码来说个人更推荐的是Fira Code这个编程专用的字体但是如果直接在MATLAB中将字体替换为Fira Code那么原来包含中文的脚本文件将产生乱码如下图所示。 这就是因为Fira Code这个字体中不包含中文的字体所以无法显示中文字体。 所以这里要使用的是混合字体即将包含中文的字体和编程字体进行合并这样当显示英文时会优先使用编程字体而显示中文时则会使用能够显示中文的字体。 常用的混合字体如下所示
YaHei-Consolas-HybridYahei-Fira-Icon-Hybrid-Font
需要注意的是如果安装好字体之后在MATLAB设置中仍然找不到可以尝试将字体的ttf文件放到MATLAB安装目录下参考这个路径
C:\Program Files (x86)\MATLAB_R2019b\sys\java\jre\win64\jre\lib\fonts${Install_Dir_of_MATLAB}\sys\java\....如果想自己制作混合字体也有办法一般是使用WFM或者Font Creator这两个工具也各自附上教程链接
WFMFont Creator
2 编码导致的乱码 需要知道的是截至R2019b这个版本MATLAB文本文件采用的编码方式仍然是GBK而不是使用最为广泛的UTF-8即在MATLAB中新建一个文本文件其编码方式就是GBK且终端也是以GBK编码方式进行解析显示。 这个问题其实如果一直使用的是MATLAB编辑器那其实没啥但是之前尝试使用VS Code编辑器来码代码时还是发现了GBK的不便之处所以建议还是将编码方式改成UTF-8。 经过查找资料发现网上目前关于MATLAB修改编码方式的方法主要是两种其中一种是修改根目录下的一个配置文件以强行修改编码方式别名的方式来“欺骗”MATLAB从而实现编码方式的修改另一种则是创建一个修改编码方式的函数文件然后在软件中添加该文件使得每次打开之前都会执行该文件从而实现编码方式的修改。
方式一修改根目录bin文件夹下的lcdata.xml文件 一般来说如果根目录下没有同名文件应该会有类似名称的文件比如带个example, src等后缀可以直接把改文件复制并改名为lcdata.xml然后把文件中关于编码方式的部分给取消注释并做一定修改 方式二新建一个startup.m文件并在软件中添加路径 需要注意的是这个文件夹可以不在软件根目录下但要求名字必须为startup.m理论上来说这个代码可以加入任意代码比如如果是为了修改编码方式可以加入以下代码function startup
feature(DefaultCharacterSet,UTF-8);
set(0,DefaultTextFontname,宋体)
set(0,DefaultAxesFontname,宋体)
end然后在MATLAB中包含这个文件夹 这样下一次启动MATLAB则会自动修改编码方式为UTF-8. 方式二其实涉及到一个函数查看编码方式feature(locale)具体用法建议查看帮助文档此外还有一个查看当前的编码方式但执行速度较慢slCharacterEncoding() 总结 本文总结了在MATLAB中设置字体以及相应的可能需要修改编码方式的教程。个人认为对于字体有强迫症要求的用户来说还是很有帮助的。虽然不是很难但还是有必要记录一下防止之后自己忘记。