英文版Windows 10中MATLAB中文字符乱码的问题(转载)
程序员文章站
2022-07-12 19:18:17
...
通用解决方法(有部分缺点)
由于一直用惯了英文系统,可是在使用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能正常显示中文:
<?xml version="1.0" encoding="UTF-8" ?>
<!-- MathWorks Locale Database -->
<!-- File Name: lcdata.xml -->
<!-- Copyright 2007-2016 The MathWorks, Inc. -->
<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。
感谢原文作者:https://blog.csdn.net/decat2008/article/details/49583851