因为模块接收短信的时候,当内容是英文的时候,用的是7位码,而是中文的时候用的是unicode码,两者解码方法不同;我的问题是:接收如何判别短信内容是中文还是英文?
6 个解决方案
接收到的报文的格式是根据中英文内容来定用7BIT码或用UNICODE码?还是根据网关的不同?还是别的什么来决定的。。。?又怎么判断报文是用的那种编码格式呢?
如果是英文信息,每个字符的ASCII码都是小于128,中文则大于128,根据这个判断就行了,我写的程序就是这样子的判断的,没出现过问题。
你说的是每4个字节判断吧?
第一,当每4个字节判断的情况,对于7BIT码表示英文的话就不实用了,因为7BIT是每2个字节表示一个用户内容。比如:PDU里面UD部分内容是“123”,7BIT码是31D90C;前4个字节是31D9明显大于128。
第二,当每两个字节判断的情况,也行不通呀;比如:“中国人”的UNICODE是4E2D56FD4EBA,任何两个字节都不会超过128。
你是怎么解决的呢?热切盼望回帖!