/**
*把传过来的内容编码
*/
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
}
*把传过来的内容编码
*/
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
}
/**
*把传过来的内容编码
*/
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 = int.Parse(head.ToString()).ToString(); //十六进制的无符号整数形式返回一个整数参数的字符串表示形式
m_strend = int.Parse(end.ToString()).ToString(); //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 = int.Parse(head.ToString()).ToString();
m_strend = int.Parse(end.ToString()).ToString(); //这几句解释上面都有,现在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
}
---------------------->
tempchar = (short)m_strContent[i];
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
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; //传过来的文本长度
char[] m_strContent_item ;
m_strContent_item = m_strContent.ToCharArray();
for (int i = 0; i < len; i++)
{
tempchar = short.Parse(m_strContent_item[i].ToString()); //按位取文本,举个例子,如当前为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 = head.ToString(); //十六进制的无符号整数形式返回一个整数参数的字符串表示形式
m_strend = end.ToString(); //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 = head.ToString();
m_strend = end.ToString(); //这几句解释上面都有,现在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
}
}
编译可以通过,不知道能不能实现原代码的功能