Unicode与FFFE(记一个蛋疼的项目)

好久没更新博客了。

近期忙着一个项目, 还要应付各种考试就顾不上博客了。


今天遇到了一个蛋疼的问题, 通过BLE4.0与蓝牙外设通信。

按照客户给的协议文档发送的数据, 可是外设不能正确识别。折腾了一下午。

最后问了客户才知道...   数据头fffe, 他们在外设里面已经做规定了。

所以不须要发送。

真是蛋疼。也怪自己不懂Unicode编码相关。


Mark一下。

Unicode与FFFE

Unicode规范中推荐的标记字节顺序的方法是BOM。BOM不是“Bill Of Material”的BOM表,而是Byte Order Mark。BOM是一个有点小聪明的想法:
在UCS编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出如今实际传输中。UCS规范建议我们在传输字节流前。先传输字符"ZERO WIDTH NO-BREAK SPACE"。


这样假设接收者收到FEFF。就表明这个字节流是Big-Endian的;假设收到FFFE。就表明这个字节流是Little-Endian的。因此字符"ZERO WIDTH NO-BREAK SPACE"又被称作BOM。



【推广】 免费学中医,健康全家人
原文地址:https://www.cnblogs.com/ldxsuanfa/p/10505757.html