硬汉嵌入式论坛

 找回密码
 立即注册
查看: 657|回复: 10
收起左侧

[STM32CubeMX] 解决用cubemx生成keil5把中文注释覆盖成乱码的笨方法

[复制链接]

2

主题

8

回帖

14

积分

新手上路

积分
14
发表于 2023-8-24 16:25:31 | 显示全部楼层 |阅读模式
  之前高高兴兴在lwip里改了不少东西,打算添新功能的时候用cubemx自动生成点新东西,注释全部爆炸,cubemx在原始文档是GB2312的情况下会把所有中文全部弄坏,虽然看上去是口字码,实际上已经变成了锟斤拷不能恢复了。

微信图片_20230824161410.png

  笨方法只适用于想要用cubemx自动配置更新但是还没动的原始文档,用NotePad++打开你写了注释或者printf中文的.c/.h文件,一般能看到右下角标识是GB2312的,如果不是就在编码-》编码字符集-》中文里调成GB2312看一下。
  确认是要改的文件后,编码-》转为UTF-8编码,保存,处理过的文件即使被cubemx重新生成,中文也不会乱码。

就是如果以后东西多了记不住的话一个一个改挺麻烦的,要是有更好的方法就好了。
大佬们都是直接写英文修炼的吗
回复

使用道具 举报

2

主题

8

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2023-8-24 16:37:03 | 显示全部楼层
好吧,这个方法还没完事,因为改完了以后输出printf里的是乱码了
解决方案是用vscode 通过GB2312编码保存
既然如此,不需要NotePad++,vscode直接存两次就是了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2023-8-24 16:48:00 | 显示全部楼层
统一采用UTF-8好点。
回复

使用道具 举报

2

主题

8

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2023-8-25 08:43:46 | 显示全部楼层
eric2013 发表于 2023-8-24 16:48
统一采用UTF-8好点。

虽然看上去舒服了,可是printf输出的时候还是乱码的,还是得转2312啊
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2023-8-25 09:03:21 | 显示全部楼层
WhiteFlame 发表于 2023-8-25 08:43
虽然看上去舒服了,可是printf输出的时候还是乱码的,还是得转2312啊

选支持UTF-8的软件就行。
回复

使用道具 举报

2

主题

8

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2023-8-25 09:28:14 | 显示全部楼层
eric2013 发表于 2023-8-25 09:03
选支持UTF-8的软件就行。

看来这是keil5没法跨过的坎了
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2023-8-25 09:46:00 | 显示全部楼层
本帖最后由 caicaptain2 于 2023-8-25 09:48 编辑

论坛里有工具,可以整个目录的转换文本编码。 另外,串口助手工具也有很多可以选择编码格式的。 utf8是大趋势。

https://www.armbbs.cn/forum.php?mod=viewthread&tid=109594


下图是windows商店可以搜索到的免费串口工具。
Snipaste_2023-08-25_09-47-58.png
回复

使用道具 举报

2

主题

8

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2023-8-25 09:58:14 | 显示全部楼层
caicaptain2 发表于 2023-8-25 09:46
论坛里有工具,可以整个目录的转换文本编码。 另外,串口助手工具也有很多可以选择编码格式的。 utf8是大趋 ...

谢谢你!我去试一下,现在常用的串口助手调不了编码
回复

使用道具 举报

210

主题

1043

回帖

1683

积分

至尊会员

More we do, more we can do.

积分
1683
发表于 2023-8-25 11:13:02 | 显示全部楼层
JVM是全局配置编码格式的,很多组件只能用UTF-8,单独选择源文件编码只能ST实现。
回复

使用道具 举报

4

主题

139

回帖

151

积分

初级会员

积分
151
发表于 2023-8-25 12:23:09 | 显示全部楼层
其实很简单,只需要在环境变量里加JAVA_TOOL_OPTIONS,-Dfile.encoding=UTF-8,系统级直接搞定就不会乱码了
回复

使用道具 举报

2

主题

8

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2023-8-25 14:18:50 | 显示全部楼层
浴火重生 发表于 2023-8-25 12:23
其实很简单,只需要在环境变量里加JAVA_TOOL_OPTIONS,-Dfile.encoding=UTF-8,系统级直接搞定就不会乱码了

这个已经用上了,但是我之前的设置里还是会乱码,可能是因为keil5里面用的2312导致的,我现在全改成u8,串口也用能调u8的,就不会再出这个问题啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-30 00:32 , Processed in 0.192364 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表