用一种比较灵活的方式上传中文数据流(可中英混合)
大家是否期待在自己的设备数据流中看到熟悉的语言~~~英文看着不方便?英文基础差,命名很头疼?很简单的,用拼音undefined
哈哈,开个玩笑。
大家一定很希望能够看到中文数据流,那多方便啊,再不为命名头疼了。
好了,作为一个码农,不饶圈子了,直入主题好了。。。
一、首先,要明白一点,OneNET平台的设备需要上传UTF-8编码的数据流,才能正确显示中文。英文就无所谓啦。
EDP、HTTP、MQTT等协议都支持一下方式。
二、介绍三种方法来上传中文数据流
1.生成编码:
一般来说,我们在Keil里边使用的是GB2312的编码,这样用中文注释时,注释部分就不会乱码,那么要传UTF-8的汉字,不得不用其他软件进行转码,这里可以参考一篇帖子
http://open.iot.10086.cn/bbs/forum.php?mod=viewthread&tid=430
2.将Keil设置为UTF-8编码
1中所说,使用软件转码来做中文数据流,这种方法比较麻烦一点,此方法可以简化下流程,就是把Keil的编码格式设置为UTF-8
这样直接把之前数据流的名字替换为中文即可,在编译的时候会自动转为UTF-8编码的,这样上传平台时,就是能够被识别的数据了。
但是这种方法有两个明显的弊端:
1.兼容性不好,大多代码都是GB2312或者ANSI编码的,如果设置为UTF-8,那么注释的东西就都是乱码了,在看逻辑复杂或者代码量大一点的程序的时候就很吃亏了。
2.显示驱动问题。有的显示器件是GB2312编码的,如果要显示中文的话,要得向显示屏发送GB2312编码的汉字才能够正确显示,如果设置为UTF-8,那么这类显示屏就 无法使用了。
3.使用UTF-8的H文件
以前2点均存在不足之处,1方法太过麻烦,2方法兼容性不够友好,那么有没有一种技能解决1中的问题也能够解决2的问题呢?
有!!!!
此方法大概步骤就是,新建一个文本文件,然后另存为UTF-8编码的H文件,然后再H文件里写如:char ZW_WENDU[] = "温度";然后外部调用即可。
详细过程:
1.新建文本文件,然后另存为UTF-8编码的H文件
2.添加到工程,按照如下格式写需要上传的数据流名字
按照例程上传数据流的格式填写即可。
然后就好咯!!!
通用,提供一个例程方便大家学习
页:
[1]