英文版Windows 10中MATLAB中文字符乱码的问题

通用解决方法(有部分缺点)

由于一直用惯了英文系统,可是在使用MATLAB的时候,由于之前留下来的代码有大量的中文字符,而这些字符在英文系统中却一直显示成乱码。

在经过多次查找方法未果之后,终于发现了MATLAB读取区域设置只是跟系统区域中的“格式(Format)”设置有关:

当格式设置成英文的时候,MATLAB便会读取相应的区域。所以解决方法便是在格式中选择"Chinese (Simplified, China)",所有乱码便解决了。

 

 
解决前


解决后

 
完美方法(R2015、R2016)

2015年11月2日 更新

但是这样做有一个问题就是时间之类的格式变成了中文的,今天经过探索之后,参考http://blog.csdn.net/xanxus46/article/details/24290769的文章依然无法解决问题,外加一步,从而完美解决了问题,具体步骤为:

1. 在MATLAB输入feature('locale'),查看默认locale代号,如en_US;

2. 就进入matlab的目录找到 bin下lcdata.xml这个文件,用任意编辑器打开;

3. 查找en_US,将本来的

locale name="en_US" encoding="ISO-8859-1" xpg_name="en_US.ISO8859-1"

修改成

locale name="en_US" encoding="GB2312" xpg_name="GB2312"

4. 查找

encoding name="windows-1252" jvm_encoding="Cp1252"

将它修改成

encoding name="GB2312" jvm_encoding="Cp1252"

重启MATLAB,大功告成!

 
完美方法(R2017后)

在更新R2017之后,/bin/文件夹下面的lcdata.xml文件变为空文件了,这时候我们需要在<lcdata></lcdata>之间加入部分语句,使得MATLAB能正常显示中文:

<lcdata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="lcdata.xsd">
<!-- Note: -->
<!-- This locale database is used to customize the MathWorks locale database. -->
 
<!-- Codeset entry example -->
<!--    <codeset> -->
<!--        <encoding name="StandardEncodingName" jvm_encoding="JavaEncodingName"> -->
<!--            <encoding_alias name="AliasName"/> -->
<!--        </encoding> -->
<!--    </codeset> -->
 
<!-- Locale entries example -->
<!--    <locale name="StandardLocaleName" encoding="EncodingName" xpg_name="XpgLocaleName"> -->
<!--        <alias name="AliasName"/> -->
<!--    "region_alias" is only for Mac -->
<!--        <region_alias name="RegionAliasName"/> -->
<!--    </locale> -->
 
    <codeset> <encoding name="windows-1252" jvm_encoding="GB2312">
        <encoding_alias name="1252"/>
    </encoding></codeset>
 
</lcdata>

 

修改后重启MATLAB。
————————————————
版权声明:本文为CSDN博主「decat2008」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/decat2008/article/details/49583851

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值