在10a上短信拦截,遇到编码问题,如何知道当前短信是ascii,还是unicode?
可能这个标志变量存在以下结构体里,但是不明白各个变量的具体含义,求教了。。。。
typedef struct
{
kal_uint8 reply_flag; /* whether reply is sought*/
kal_uint8 udh_p; /* indicates presence of
user data header*/
kal_uint8 status_rep_flag; /* whether status reports
are sought*/
kal_uint8 fill_bits; /* to be ignored*/
kal_uint8 mms; /* more message to send*/
kal_uint8 msg_type; /* sms deliver*/
kal_uint8 no_orig_addr;
kal_uint8 orig_addr_size; /* the max size of *orig_addr in octet*/
kal_uint8 *orig_addr; /* assumed to be
byte-packed*/
kal_uint8 pid; /* to be bit-wise decoded*/
kal_uint8 dcs; /* to be bit-wise decoded*/
kal_uint8 scts[7];
kal_uint8 user_data_len;
kal_uint8 no_user_data; /* 7-bit to octet */
kal_uint8 user_data_size; /* the max size of *user_data in octet*/
kal_uint8 *user_data; /* can have user data header also*/
} smslib_deliver_peer_struct;
是不是存在dcs里?
------解决方案--------------------
是的, dcs是00表示压缩英文,为04表示数据,为08表示ucs2。
短信内部是这么用的。