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 之后,乱码的中文应该就不再乱码了。但是仍然存在问题:某些汉字仍然会以方块的形式显示。

相关推荐
疏狂难除8 小时前
【Tauri2】050——加载html和rust爬虫
开发语言·爬虫·rust·spiderdemo
Zhangzy@9 小时前
仓颉的空安全基石:Option类型的设计与实践
java·开发语言·安全
oioihoii9 小时前
Rust中WebSocket支持的实现
开发语言·websocket·rust
明道源码11 小时前
Kotlin Multiplatform 跨平台方案解析以及热门框架对比
开发语言·kotlin·cocoa
fie888911 小时前
C#实现连续语音转文字
开发语言·c#
一念&13 小时前
每日一个C语言知识:C 头文件
c语言·开发语言·算法
DARLING Zero two♡14 小时前
仓颉GC调优参数:垃圾回收的精密控制艺术
开发语言·仓颉
今日说"法"14 小时前
Rust探秘:所有权转移在函数调用中的表现
开发语言·后端·rust
java1234_小锋14 小时前
PyTorch2 Python深度学习 - 自动微分(Autograd)与梯度优化
开发语言·python·深度学习·pytorch2
Python私教15 小时前
C 语言运算符全景:从入门到进阶
c语言·开发语言·网络