MATLAB保存后中文乱码问题(不太算解决)

版本:2023b

参考文档:

1、授人以渔--解决Matlab中文乱码 - Echo (qiujinfeng.com)

2、Matlab: 修改编码方式, 如GBK->UTF-8_matlab编码设置utf8-CSDN博客

3、MATLAB编码问题的解决【亲测踩遍所有坑】 - TCcjx - 博客园 (cnblogs.com)

4、更改MATLAB字符集编码 - MATLAB Answers - MATLAB Central (mathworks.cn)

问题描述:

编辑器页中文注释保存后,再次打开中文出现方框问号。用第三方编辑器就是正常的。但是虽然编辑页注释乱码,不影响运行,正常出中文。也就是说只有编辑器页面有异常。

按照网上改lcdata.xml以及lcdata_utf8.xml也是无效。

而且使用>> feature('locale')后,除了jvmEncoding:变成(忘记了,不是UTF8)以外,没有用

其它电脑应该可以参考文档(2)里面的,死命往里面加东西。。。。

还有就是上面那个GBK可以不删除

重启软件后,输入slCharacterEncoding()

但是它解决不了只有注释乱码的问题!!!

尝试用另外一台电脑看一下。

两台电脑出现情况不一致,

一台是:

encoding: 'GBK'
terminalEncoding: 'GBK'
jvmEncoding: 'GBK'

另外一台是:

如果是下面这个

encoding: 'UTF-8'
terminalEncoding: 'GBK'
jvmEncoding: 'UTF-8'

中文注释保存后再次打开就没有出现乱码问题

解决思路:

1、考虑是否是字体问题,打算将正常电脑的字体放到异常的里面。

2、看参考文档(1)了解原理

参考文档(4)fopen(文件名, 'r', 'n', 'IBM866'),这个好像是个思路

今天看了一下,不专门纠结与MATLAB,然后发现问题迎刃而解,由于系统太老了,不适合这个版本。。。

简单说一下:

在区域里,单击管理,找到更改系统区域设置,

将下面的BETA版点击上,单机确定,重启系统即可

### 三级标题:MATLAB 中文注释乱码问题解决方法 MATLAB 中文注释显示乱码问题通常是由于文件编码格式与MATLAB默认编码格式一致导致的。以下是几种常见的解决方法: 1. **检查文件编码格式** 使用外部编辑器(如VS Code)打开 `.m` 文件,查看中文注释是否正常显示。如果在VS Code中正常而在MATLAB乱码,很可能是文件编码与MATLAB默认编码一致。此时可以尝试将文件内容复制到MATLAB保存,然后再重新打开文件,查看乱码是否已解决 [^1]。 2. **修改MATLAB的编码设置** MATLAB的默认编码格式可以通过 `slCharacterEncoding()` 命令查看。如果显示的编码格式是UTF-8,可以通过修改MATLAB安装目录下的 `lcdata.xml` 文件来调整编码设置。具体操作是在文件中合适位置添加以下代码: ```xml <codeset> <encoding name="UTF-8"> <encoding_alias name="windows-1252" /> </encoding> </codeset> ``` 修改完成后,重启MATLAB并再次运行 `slCharacterEncoding()` 命令确认编码格式已更改。需要注意的是,这种方法仅能确保新写的中文注释乱码,之前已乱码的字符无法自动恢复 [^2]。 3. **使用记事本另存为ANSI格式** 如果文件已经存在乱码问题,可以尝试用Windows自带的记事本打开该文件,然后选择“另存为”,在保存时选择编码为ANSI,文件类型选择“所有文件”。保存完成后,重新用MATLAB打开该文件,中文注释应该可以正常显示 [^4]。 4. **版本兼容性问题** MATLAB从2017a版本开始,默认编码格式从GBK改为UTF-8。因此,如果使用较新版本(如2021a)创建的文件在较旧版本(如2017a)中打开时,可能会出现乱码问题解决办法是确保文件在保存时使用UTF-8编码,或者在旧版本中打开时手动调整编码格式 [^3]。 ### 三级标题:相关代码示例 以下是一个简单的MATLAB脚本示例,展示了如何通过命令行查看当前编码格式: ```matlab % 查看当前MATLAB的编码格式 currentEncoding = slCharacterEncoding(); disp(['当前MATLAB的编码格式为: ', currentEncoding]); ``` ### 三级标题:注意事项 - **文件编码一致性**:确保在同编辑器和同版本的MATLAB中打开文件时,文件的编码格式保持一致。 - **历史乱码问题**:修改编码设置后,只能保证新添加的中文注释乱码,之前已经乱码的内容无法自动修复,需手动重新输入。 - **备份文件**:在修改系统文件(如 `lcdata.xml`)之前,建议备份原始文件,以防修改后出现问题。 ### 三级标题:常见问题 #### 1. 如何确定文件的编码格式? 可以通过外部编辑器(如VS Code)查看文件的编码格式,或者使用MATLAB命令 `slCharacterEncoding()` 查看当前默认编码。 #### 2. 同版本的MATLAB对编码的支持有何差异? 2017a之前的MATLAB默认使用GBK编码,而2017a及以后的版本默认使用UTF-8编码。因此,在同版本之间共享文件时,可能会出现乱码问题。 #### 3. 是否可以通过MATLAB内置功能直接修改文件编码? MATLAB本身提供直接修改文件编码的功能,但可以通过外部工具(如记事本或VS Code)进行编码转换。 #### 4. 修改 `lcdata.xml` 文件是否有风险? 修改系统文件存在一定风险,建议在修改前备份原始文件。如果熟悉系统文件的结构,建议谨慎操作或寻求专业人士的帮助。 #### 5. 为什么修改编码后旧的乱码内容无法恢复? 编码修改仅影响新写入的内容,旧的乱码内容由于已经以错误编码格式存储,无法自动转换回正确的字符。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值