这个是对文本内容得编码,经过编码之后内容可以用手机短信发送,请高手帮忙翻译一下,不懂
public static String UniToChars(String m_strContent)
{
    String result=null;
        short tempchar,char1,char2;
        int len;
        byte head,end;
        String m_strhead,m_strend,smscode="";
        len=m_strContent.length();
for(int i=0;i<len;i++)
{
   tempchar=(short)m_strContent.charAt(i);
   char1=(short) (tempchar&0xFF00);
   char2=(short) (tempchar&0x00FF);
   char1=(short) (char1>>8);
   
   byte head1=(byte)char1;
   byte end1=(byte)char2;
   
   head=(byte)(head1>>4);
   end=(byte)(head1&0x0F);
   m_strhead=Integer.toHexString(head);
   m_strend=Integer.toHexString(end);
   if(m_strhead.length()>1)
   m_strhead=m_strhead.substring(m_strhead.length()-1);
   if(m_strend.length()>1)
   m_strend=m_strend.substring(m_strend.length()-1);
   smscode=smscode+m_strhead+m_strend;
   
   head=(byte)(end1>>4);
   end=(byte)(end1&0x0F);
   m_strhead=Integer.toHexString(head);
   m_strend=Integer.toHexString(end);
   if(m_strhead.length()>1)
   m_strhead=m_strhead.substring(m_strhead.length()-1);
   if(m_strend.length()>1)
   m_strend=m_strend.substring(m_strend.length()-1);
   smscode=smscode+m_strhead+m_strend;
  // smscode=smscode+m_strContent.charAt(i);
}
    
    result=smscode;
    return result;
}

解决方案 »

  1.   


    /**
    *把传过来的内容编码
    */
    public static String UniToChars(String m_strContent) 

        String result=null; // 要返回的结果
            short tempchar,char1,char2; 
            int len; 
            byte head,end;                        //这里都是声明变量就不说了,下面再说每个变量的意义
            String m_strhead,m_strend,smscode=""; 
            len=m_strContent.length(); //传过来的文本长度
       for(int i=0;i <len;i++) 
       { 
       tempchar=(short)m_strContent.charAt(i); //按位取文本,举个例子,如当前为a,则ASC码为97,下面都
                                                     //用此例
       char1=(short) (tempchar&0xFF00);        //char1存储该位文字的高8位,a的高8为为0
       char2=(short) (tempchar&0x00FF);        //char2存储低8位.里面是97,也就是01100001
       char1=(short) (char1>>8);               //把char1右移8位,此时char1存储的0,
                                               //也就是00000000
        
       byte head1=(byte)char1;                 //把高位的值给head1,也就是0
       byte end1=(byte)char2;                  //把低位的值给end1,也就是97
        
       head=(byte)(head1>>4);                  //高位再右移4位,还是为0
       end=(byte)(head1&0x0F);                 //head1也就是0跟00001111按位与,也就是取低四位,还是0
       m_strhead=Integer.toHexString(head);    //十六进制的无符号整数形式返回一个整数参数的字符串表示形式
       m_strend=Integer.toHexString(end);      //m_strhead,m_strend都是0
       if(m_strhead.length()>1)                //如果m_strhead长度大于1
       m_strhead=m_strhead.substring(m_strhead.length()-1); //m_strhead长度减1
       if(m_strend.length()>1)                         
       m_strend=m_strend.substring(m_strend.length()-1); //同上面解释
       smscode=smscode+m_strhead+m_strend;               //这里为00
        
       head=(byte)(end1>>4);  //head=把end1右移4位,也就是把  
                                  //01100001右移4位变成00000110,
                                  //也就6                                               
       end=(byte)(end1&0x0F); //end=把end1跟0x0F按位与,也就是把  
                                  //01100001&0000ffff=00000001,
                              //也就1  
       m_strhead=Integer.toHexString(head); 
       m_strend=Integer.toHexString(end);    //这几句解释上面都有,现在m_strhead=6,m_strend=1
       if(m_strhead.length()>1) 
       m_strhead=m_strhead.substring(m_strhead.length()-1); 
       if(m_strend.length()>1) 
       m_strend=m_strend.substring(m_strend.length()-1); 
       smscode=smscode+m_strhead+m_strend;    //刚才上面smscode为00,
                                              //所以smscode=smscode+m_strhead+m_strend=0061
      // smscode=smscode+m_strContent.charAt(i); 

         
        result=smscode;          //把smscode的值给result
        return result;           //返回结果0061
    }