STM32CubeMX处理UTF-8编码中文注释存在的问题及解决方法
Windows环境下源代码使用UTF-8编码,STM32CubeMX创建的源文件中包含中文注释,那么使用STM32CubeMX重新生成源代码时会导致中文注释变乱码。
http://blog.csdn.net/zoomdy/article/details/54767178
mingdu.zheng at gmail dot com
存在的问题
STM32CubeMX修改配置并重新生成文件后,原来的中文注释中出现了乱码,见下图。
下图是乱码之前的代码。
按照STM32CubeMX的设计,在重新生成代码时只会修改STM32CubeMX生成的代码,保留用户在指定区域内编写的代码。
问题分析
多次实验后发现,只有在Windows环境下源代码使用UTF-8编码时才出现这个问题,如果使用Windows默认的GBK编码是没有问题的。Linux环境下使用UTF-8编码不会出现这个问题,Linux默认编码就是UTF-8。
解决办法
1、不要使用UTF-8编码。如果开发环境是多元的,要支持Windows、Linux、Mac OS X,那只能使用UTF-8编码。
2、不要在STM32CubeMX生成的文件中写中文注释,可以写英文注释,或者将有中文注释的代码放到用户创建的源文件中,STM32CubeMX不会去修改用户创建的源文件,所以是没问题的。