解決Matlab 2018a源代碼的中文支持問題

解決Matlab 2018a源代碼的中文支持問題

 

https://www.jianshu.com/p/92efca110bd1

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是否可以解決問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章