前提
- Windows中文操作系统
- 标准的第三方C语言库,写的是标准的C代码,原有代码使用utf8编码。
后面追加:
- 因为涉及到了Windows的USB设备,所以就加入了Windows的设备相关API,API返回的是GBK编码;
- 后面又查找了Windows内置的窗口信息,想要找到Windows的窗口需要使用utf16;
- Windows内置窗口中按钮标题查找使用字符串比对,文本使用GBK编码;
- 跨进程读listview的列表项文本查找也使用字符串比对,列表项使用GBK编码;
所以,针对上面的追加功能,需要的参数由utf8字符串提供;
其中:
- 按钮和列表项文本比较,使用GBK编码的配置文件读配置项,这样两方都是GBK编码
- 窗口标题,GBK设备名称 > utf8编码 > utf16编码,明确使用FindWindowW查找窗口
其他字符串比对,也要先明确比对的两个字符串分别是什么编码,然后同一编码后对比。
想要确定是哪种编码,一般编码不会太多种类
- 将字符串以二进制的形式打印出来
- 将字符串对应的中文存为不同编码格式的文本文件,如notepad,editplus
- 使用二进制工具查看文件的二进制数据,如UEStudio,
- 比对出字符串的编码