matlab中中文注释出现乱码问题(部分解决)

问题:过去一直使用的是r2024b的版本,今天需要用r2018b的版本适配win7的系统。但是在r2018b的版本中所有中文出现了乱码现象,怀疑是编码规则的问题。

解决途径:参考https://blog.ericzhuochen.com/post/matlab-utf8/

网上很容易搜到,在 Matlab 的命令行中可以使用 feature('locale') 命令来查看当前的编码方式。

结果如下:

证明 r2018b使用的是GBK编码规则。

解决办法:打开软件的bin文件夹。在此目录下,会有两个文件lcdata.xmllcdata_utf8.xml。其中 lcdata.xml 决定了 Matlab 的编码方式,而 lcdata_utf8.xml 似乎是一个不生效,但是专门用来替代 lcdata.xml 的文件。

首先,把 lcdata.xml 重命名为 lcdata_old.xml,即把它备份一份,防止以后要用到。然后,把 lcdata_utf8.xml 复制一份,就叫做 lcdata.xml,并且打开它,作出一些改动。首先要删掉关于 GBK 的这一部分:

XML 复制代码
<encoding name="GBK'>
    <encoding_alias name="936"/>
</encoding>

然后,改动一下关于 UTF-8 的部分,高亮的那一行是新加入的内容:

XML 复制代码
<encoding name="UTF-8">
    <encoding_alias name="utf8"/>
    <encoding_alias name="GBK"/> 
</encoding>

这么做的目的就是,将 GBK 编码从一种独立的编码方式,改成了 UTF-8 的一个别名,从而欺骗 Matlab,让它使用 UTF-8。虽然很不优雅,但是真的有用。

重启 Matlab 之后,乱码的中文应该就不再乱码了。但是仍然存在问题:某些汉字仍然会以方块的形式显示。

相关推荐
夜雪一千11 小时前
Python从HTML提取纯文本、去空格、比对内容是否变化:方案+合理性分析
开发语言·python·html
烂蜻蜓11 小时前
Node.js入门教程(一):初识Node.js——服务端JavaScript的诞生与特点
开发语言·javascript·node.js
北冥you鱼13 小时前
Go语言大数(big.Int)比较大小:原理、方法与最佳实践
开发语言·后端·golang
宁之明起(B服)13 小时前
Java 反序列化漏洞-xmldecoder/SnakeYAM
java·开发语言
xcLeigh13 小时前
Go入门:零值与变量默认初始化机制
开发语言·后端·golang
deviant-ART13 小时前
java stream 的 findFirst 及 findAny 方法遇到 null 元素时会出现 NullPointerException
java·开发语言
银-豆豆13 小时前
Python爬虫
开发语言·爬虫·python
zmzb010314 小时前
C++课后习题训练记录Day179
开发语言·c++
jjjava2.014 小时前
MyBatis动态if/trim/where/set标签详解
java·开发语言·数据库
不正经学生14 小时前
C语言指针进阶:const 和野指针——给指针加锁,向野指针宣战
c语言·开发语言·c++·算法·c#