本文分析了macOS
下Matlab
中文乱码的原因,区别于网上很多不通用的方案,对于个人的不同情况能有对应的解决方案,希望能对你有所帮助。
1. 背景
- 系统:OS X EI Captian 10.11.6
- 语言与地区设置:简体中文、中国香港
- 问题:Matlab中文路径、中文注释、中文字符串等保存后都是乱码。
2. 解决
直接百度Matlab中文乱码,给出的很多解决方案都是说给把Matlab安装目录下bin文件夹里的lcdata.xml
里的
<locale name="zh_CN" encoding="GB2312" xpg_name="zh_CN.GB2312">
改成
<locale name="zh_CN" encoding="UTF-8" xpg_name="zh_CN.UTF-8">
但是这并不能解决所有人的遇到的情况。像我的电脑就不能解决。于是我们需要掌握更具普遍性的解决方案。
首先,我们要知道,出现乱码的情况肯定是由于编码的问题。Matlab启动是会根据电脑设置的语言和地区来选择编码。
我们可以打开Matlab安装目录下的bin/lcdata.xml
来看看。在Mac里的话,就是在应用程序里找到Matlab–右键–显示包内容–bin–lcdata.xml。
打开后我们可以看到这样的条目。
2.1 获取地区
易得,locale name
指的是地区名,encoding
指的是编码。那么,怎么才能获取Matlab当前的编码呢?
在Matlab的命令窗口里输入:feature('locale')
就可以得到如下的结果:
ans =
ctype: 'zh_HK.UTF-8'
collate: 'zh_HK.UTF-8'
time: 'zh_HK.UTF-8'
numeric: 'en_US_POSIX.UTF-8'
monetary: 'zh_HK.UTF-8'
messages: 'en_US.UTF-8'
encoding: 'UTF-8'
terminalEncoding: 'UTF-8'
jvmEncoding: 'UTF-8'
status: 'MathWorks locale management system initialized.'
warning: ''
这里的ctype就是我们需要的。且从这可以明显看出我的地区设置的是zh_HK.注意我这里的ctype是改过的,所以显示的是zh_HK.UTF-8。
然后你就可以在lcdata里搜索你的ctype。例如我这里需要搜索的是zh_Hk
。
2.2 修改编码
假设我的地区设置的是台湾,然后获得的ctype显示的是zh_TW.Big5
,那我就需要搜索zh_TW
,获取的结果如下
<locale name="zh_TW" encoding="Big5" xpg_name="zh_TW.Big5">
<alias name="zh-Hant"/>
</locale>
修改成
<locale name="zh_TW" encoding="UTF-8" xpg_name="zh_TW.UTF-8">
<alias name="zh-Hant"/>
</locale>
保存退出。这里你可能没有文件的修改权限,至于如何添加用户对文件的修改权限就不再赘述了。如果用的是vim打开的话直接w!
就好了。
2.3 检验
重启matlab。现在应该就能支持中文路径了。至于之前保存的中文是乱码,现在可能还是乱码。不过现在改成中文之后再打开,中文也不会变成?或者其他乱码了。就酱。
除另有声明外,本博客文章均采用 知识共享(Creative Commons) 署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议 进行许可。