解决Matlab 2018a源代码的中文支持问题

1. 问题

Matlab 2018a源代码的中文支持问题:

Matlab软件要求源文件mfile采用GBK编码。但是在调用程序过程中,程序有时候必须用UTF-8编码,例如shaperead中文地图程序。此时采用slCharacterEncoding('UTF8')来解决问题,无效。同时网上的其它方法,对于Matlab 2018a之前的版本有效。对于Matlab 2018a无效。本文提供一个解决思路。

系统环境: Windows 10, Matlab 2018a

2. 解决方案

解决问题的思路:(1) 使源文件支持UTF-8;(2)更改原文文件为UTF-8编码。

我采用如下步骤,终于解决了问题。

(1) 更改Windows10 的区域设置

区域>管理>更改系统区域设置>选择,beta版,启用UTF8支持

(2) 更改Matlab 2018版的lcdata.xml内容

使用notepad++软件更改lcdata.xml内容更改如下


<?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>

<encoding name="UTF-8" jvm_encoding="UTF-8">

  <encoding_alias name="UTF-8"/>

  </encoding>

</codeset>

<locale name="zh_TW" encoding="UTF-8" xpg_name="zh_TW.UTF-8">

    <alias name="zh-Hant"/>

</locale>

</lcdata>

(3) 将Matlab .m源文件转换为UTF-8编码。基于Notepad++软件完成。

(4) 于Matlab 源代码中加入如下代码


feature('DefaultCharacterSet', 'UTF-8');

slCharacterEncoding('GBK')

slCharacterEncoding('UTF8')

3. TODO:

目前还存在两个问题:(1) UTF8格式的m文件,在Matlab中保存一次后,会自动重新转换为GBK格式。(2)UTF8格式的m文件,在Matlab编辑器中显示为乱码。但是在Notepad++编辑器中能够正常显示。所以写代码只好在Notepad++中进行了。

不知道升级Matlab2018B是否可以解决问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容