Keil5-MDK (五)将源代码编码格式转换为 UTF-8 的方法与实践

前言

在使用 Keil MDK 的代码编辑器进行开发时,UTF-8 编码已成为主流格式,尤其是在 MDK 采用 AC6 工具链的情况下,对 UTF-8 的支持更加完善。因此,对于许多非 UTF-8 编码的文件,我们通常需要将其转换为 UTF-8 格式。

当前限制:该方法仅支持转换单个文件,无法批量转换整个文件夹下的所有文件。

一.添加转换工具

1.安装python环境

如果电脑已经安装 python,直接跳到第 2 步,否则要安装一下python。

python下载官网地址: https://www.python.org/downloads/

2.安装 Chardet插件

如果电脑已经安装 Chardet,直接跳到第 3 步,否则要安装一下Chardet。

【WIN】右键 ,选择【终端】打开,在 PowerShell 的窗口中输入 “pip install chardet”,按 【Enter】运行,窗口显示“Successfully installed chardet”代表安装成功。

3.添加 translate_to_utf8.py 脚本文件

点击文章末尾“资源下载”链接进去下载装换工具脚本,可以在任何目录下新建文件夹存放 “translate_to_utf8.py ”脚本文件,对存放路径没要求。这里例程是把这个脚本文件放在 keil 的安装目录下的“ Tools ”文件夹里。

Python脚本文件代码

# -*- coding: UTF-8 -*-
# 将任意其他编码文本文件转换为UTF-8编码

import sys
import chardet
import codecs

if len(sys.argv) > 1 :
    content = open(sys.argv[1], 'rb').read();
    source_encoding = chardet.detect(content)['encoding'];
    print(source_encoding);
    if source_encoding != None:
        if source_encoding != 'utf-8' and source_encoding != 'utf-8-SIG':
            content = content.decode(source_encoding, 'ignore')
            codecs.open(sys.argv[1], 'w', encoding='UTF-8').write(content);

4.在keil5 添加自定义外部工具菜单

打开keil5 软件,点击【Tools】,选择【Customize Tools Menu】,点击【新建】按钮,输入插件工具名称:“Convert2UTF-8”,工具名称可以任意取名;

【Command】命令选项:python “D:\Program Files\Keil_v5\Tools\translate_to_utf8.py”

【Argument】选项:#E

Command 表示命令调用python脚本“translate_to_utf8.py”,目录填写之前复制脚本文件的目录;【#E】 表示当前编辑文件;

5.keil5 设置快捷键

快捷键设置,非必须,如果不需要就跳过这一步。在这里用“Ctrl+J”表示这个工具脚本快捷键。

首先点击设置,选择【Shortcut Keys】,找到之前命名的工具脚本,点击【Create Shortcut】创建,然后在弹出的对话框按住键盘“Ctrl+J”,在“Press new shortcut Key”框会显示刚才在键盘输入“Ctrl+J”,最后点击【OK】完成。

二.编码转换工具测试

1.keil 设置utf8格式

下面工程文件是 【GB2312】编码格式,在 keil5设置成【UTF-8】格式后,中文注释显示乱码,

显示结果如下:

2.转换编码格式

keil 工程中遇到非 UTF-8 编码的文件,在 keil5设置成【UTF-8】格式后,只要点击 【Tools】,选择【 Convert2UTF-8】工具,将文件编码格式转换为 UTF-8,解决中文注释显示乱码问题。

显示结果如下:

参考文章

参考CSDN这篇文章:KEIL-MDK将源代码编码转换为UTF-8

资源下载

translate_to_utf8.py 脚本下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值