可能看着有点别扭,应该没有问题,浪费了我1小时了,希望有效,呵呵。private static string Decoded(string strSource)
{
string s1=strSource.Substring(2);//注意如果有效字节长度超过了FF,需要算一下从第几个开始是数据
int h,l;
char f,s;
byte[] b=new byte[s1.Length/2]; for(int i=0;i<s1.Length/2;i++)
{
f=s1[2*i];
s=s1[2*i+1];
if(f<'0' || f>'9')
h=10+(Convert.ToInt16(f)-Convert.ToInt16('A'));
else
h=Convert.ToInt16(f)-48;
if(s<'0' || s>'9')
l=10+(Convert.ToInt16(s)-Convert.ToInt16('A'));
else
l=Convert.ToInt16(s)-48;
b[i]=Convert.ToByte(h*16+l);
}
s1=Encoding.BigEndianUnicode.GetString(b);
return s1;
}
{
string s1=strSource.Substring(2);//注意如果有效字节长度超过了FF,需要算一下从第几个开始是数据
int h,l;
char f,s;
byte[] b=new byte[s1.Length/2]; for(int i=0;i<s1.Length/2;i++)
{
f=s1[2*i];
s=s1[2*i+1];
if(f<'0' || f>'9')
h=10+(Convert.ToInt16(f)-Convert.ToInt16('A'));
else
h=Convert.ToInt16(f)-48;
if(s<'0' || s>'9')
l=10+(Convert.ToInt16(s)-Convert.ToInt16('A'));
else
l=Convert.ToInt16(s)-48;
b[i]=Convert.ToByte(h*16+l);
}
s1=Encoding.BigEndianUnicode.GetString(b);
return s1;
}
{
string s1=strSource.Substring(2);//注意如果有效字节长度超过了FF,需要算一下从第几个开始是数据
int h,l;
char f,s;
byte[] b=new byte[s1.Length/2]; for(int i=0;i<s1.Length/2;i++)
{
f=s1[2*i];
s=s1[2*i+1];
if(f<'0' || f>'9')
h=10+(Convert.ToInt16(f)-Convert.ToInt16('A'));
else
h=Convert.ToInt16(f)-48;
if(s<'0' || s>'9')
l=10+(Convert.ToInt16(s)-Convert.ToInt16('A'));
else
l=Convert.ToInt16(s)-48;
b[i]=Convert.ToByte(h*16+l);
}
s1=Encoding.BigEndianUnicode.GetString(b);
return s1;
}