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 这样直接把之前数据流的名字替换为中文即可,在编译的时候会自动转为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.麒麟座V2.3综合应用代码-FreeRTOS-EDP-中文数据流.zip |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed