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

相关推荐
zhangjw343 小时前
Java基础语法:变量、数据类型与运算符,从原理到实战
java·开发语言
yaoxin5211236 小时前
384. Java IO API - Java 文件复制工具:Copy 示例完整解析
java·开发语言·python
NotFound4866 小时前
实战指南如何实现Java Web 拦截机制:Filter 与 Interceptor 深度分享
java·开发语言·前端
Ava的硅谷新视界7 小时前
用了一天 Claude Opus 4.7,聊几点真实感受
开发语言·后端·编程
rabbit_pro7 小时前
Python调用onnx模型
开发语言·python
浪客川8 小时前
【百例RUST - 010】字符串
开发语言·后端·rust
赵侃侃爱分享9 小时前
学完Python第一次写程序写了这个简单的计算器
开发语言·python
断眉的派大星9 小时前
# Python 魔术方法(魔法方法)超详细讲解
开发语言·python
2501_933329559 小时前
技术深度拆解:Infoseek舆情处置系统的全链路架构与核心实现
开发语言·人工智能·自然语言处理·架构
妮妮喔妮9 小时前
supabase的webhook报错
开发语言·前端·javascript