现在的位置: 首页 > 综合 > 正文

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

2016年03月10日 ⁄ 综合 ⁄ 共 500字 ⁄ 字号 评论关闭

好久没更新博客了。

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

今天遇到了一个蛋疼的问题, 通过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。

抱歉!评论已关闭.