系统结构:
应用系统产生短信---->短信接口表--(发送短信程序)-->发送短信。
短信接口表中讲短信内容限定为140字节(数据库采用GBK编码,一个汉字占用2个字节)
来源:
我们的系统需要将一条文本信息发送给用户,由于无法使用长短信,只能将短信分条发送
实现经历:
实现思路一:
截取每条短信最多140个字节(如果第139位为一个汉字的一半 则只截取139位)
public static String[] smsplit(String str)throws Exception{
//用于保存每次起始的索引和长度
Map map=new HashMap();
//确定总字节最大值
int total = 140;
//每段長度
int length = 0;
//每段位置
int hom_pos = 0;
for (int i=0; i<str.length(); i++){
char t=str.charAt(i);
Character ac = new Character(t);
byte[] bs = ac.toString().getBytes("GBK");
length+=bs.length;
System.out.println(t+Arrays.toString(bs)+"===="+bs.length+"===="+length);
if(length>total){
length-=bs.length;
//設置每段參數
map.put(String.valueOf(hom_pos), String.valueOf