英文操作系统,MATLAB编辑器保存与显示中文乱码的两种情况和解决方法

英文操作环境下MATLAB编辑器里的中文乱码,应该是有两种情况

1、编辑器输入中文显示乱码(一般是框框等等)

2、编辑器能输入中文正常显示,保存重新打开后变成乱码(一般是??)

统一的解决方法是

①Control Panel,Region,Administrative,Language for non-Unicode Option Set as Chinese(Simplified,China)

②Control Panel,Region,Formats,Format Option Set as Chinese(Simplified,China).

注意,光设置Language for non-Unicode Option是没用的,Format也要一起设。

但是这样有个什么问题呢?系统格式变成中文了,matlab显示语言也变成中文了,如果实验室有其他人和你一起共用会很不好。

精准一些的解决方法是

1、编辑器不能显示中文一般是字体的问题,改字体,有很多教程了,MATLAB,Preferences,Fonts。

2、编辑器能显示中文就不是字体的原因了,保存变乱码考虑是字符集的问题。来看一下

>> feature('locale')

ans = 

  struct with fields:

               ctype: 'en_US.windows-1252'
             collate: 'en_US.windows-1252'
                time: 'en_US.windows-1252'
             numeric: 'en_US_POSIX.windows-1252'
            monetary: 'en_US.windows-1252'
            messages: 'en_US.windows-1252'
            encoding: 'windows-1252'
    terminalEncoding: 'GBK'
         jvmEncoding: 'Cp1252'
              status: 'MathWorks locale management system initialized.'
             warning: ''

这里的en_US.windows-1252是指向Cp1252的一个Name,Cp1252这个小字符集才是关键,其他都不用看了,只要考虑把jvmEncoding: 'Cp1252'这个改掉就行。

找MATLAB目录下的lcdata.xml文件,里面是空的,MATLAB如果读lcdata.xml为空,会使用系统默认的字符集,但是并不代表lcdata.xml文件是没用的,我用的是MATLAB2017,同一个目录下还有一个lcdata_utf8.xml,直接更名成lcdata.xml,搜索windows-1252或者是cp1252,找到节点

        <encoding name="windows-1252" jvm_encoding="Cp1252">
            <encoding_alias name="1252"/>
        </encoding>

改成

        <encoding name="windows-1252" jvm_encoding="UTF-8">
            <encoding_alias name="1252"/>
        </encoding>

保存

重启MATLAB,feature('locale')

中文显示也正常了。

如果没有lcdata_utf8.xml怎么办?确定ctype与jvmEncoding的关联,自己编辑lcdata.xml就行了

按照它的格式

<!--    <codeset> -->
<!--        <encoding name="StandardEncodingName" jvm_encoding="JavaEncodingName"> -->
<!--            <encoding_alias name="AliasName"/> -->
<!--        </encoding> -->
<!--    </codeset> -->

       <codeset> <encoding name="windows-1252" jvm_encoding="UTF-8">
            <encoding_alias name="1252"/>
        </encoding></codeset>

//====================================xisat=================

困扰我几天了,今天下决心来弄好,希望能帮到大家。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值