2019-7-24 10:20:37 [显示全部楼层]
2273浏览
查看: 2273|回复: 0

[项目教程] 用一种比较灵活的方式上传中文数据流(可中英混合)

[复制链接]
大家是否期待在自己的设备数据流中看到熟悉的语言~~~英文看着不方便?英文基础差,命名很头疼?
很简单的,用拼音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
               用一种比较灵活的方式上传中文数据流(可中英混合)图2
              这样直接把之前数据流的名字替换为中文即可,在编译的时候会自动转为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文件
                      用一种比较灵活的方式上传中文数据流(可中英混合)图3
                      用一种比较灵活的方式上传中文数据流(可中英混合)图4
                     2.添加到工程,按照如下格式写需要上传的数据流名字
                      用一种比较灵活的方式上传中文数据流(可中英混合)图5
                     按照例程上传数据流的格式填写即可
                      用一种比较灵活的方式上传中文数据流(可中英混合)图6

然后就好咯!!!
用一种比较灵活的方式上传中文数据流(可中英混合)图7

通用,提供一个例程方便大家学习
下载附件1.麒麟座V2.3综合应用代码-FreeRTOS-EDP-中文数据流.zip
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail