NOWSMS做得的确比较强,同事自己写的彩信中心在下发消息时,中文标题是乱码,但用NOWSMS下发时标题正常。主要在于对UTF-8的处理问题上,NOWSMS指明了UTF-8采用的是三字节编码方式:
96 08 ea e6 b5 8b e8 af 95 00。
0x96:表示subject
0x08:表示主题的字节长度
0xea:表示三字节编码方式,0xea表示11101010,说明UTF-8表示的三个字节中,第一个字节是以1110开头,第二个字节是以10开头,第三个字节是以10开头
0xe6 0xb5 0x8b 0xe8 0xaf 0x95:表示标题内容“测试”
0x00:表示标题部分结束
将0xe6 0xb5 0x8b还原成二进制11100110,10110101,10001011,根据0xea说明的方式,我们去掉第一个字节中的1110,第二个字节中的10,第三个字节中的10,那么将剩下的部分0110,110101,001011合并,结果是01101101,01001011,转换成十六进制后为0x6D,0x4B,拿文本编辑器ULTRAEDIT看一下"测"的unicode编码。
后来同事按这种编码方式处理后,手机收到的标题正常。