UCS2编码转换C#
时间:2011-04-24 来源:Henley Gao
private static string GetTextFromPdu_UCS2(string pdu) //解析短信正文函数_UCS2编码 60A8597D =您好
{
//截取PDU串中短信正文部分源码,读者也可用BitConverter函数实现部分转换
string Text = "";
char[] d = pdu.ToCharArray();//存入字符数组
for (int i = 0; i < d.Length; i += 4)
{
int unicode_nu = 0;
for (int m = 0; m < 4; m++) //计算 Unicode 十进制值
unicode_nu += HexToDec(d[i + m]) * (1 << ((3 - m) * 4));
Text += (char)unicode_nu; //输出 Unicode 对应字符
}
return Text;//返回短信正文内容
}
private static int HexToDec(char Hex) //16 进制转 10 进制
{
int Dec;
if (Hex >= '0' && Hex <= '9')
Dec = Convert.ToInt16(Hex - '0'); //0-9
else
Dec = Convert.ToInt16(Hex - 'A') + 10;// A-F
return Dec;//返回 10 进制值
}
{
//截取PDU串中短信正文部分源码,读者也可用BitConverter函数实现部分转换
string Text = "";
char[] d = pdu.ToCharArray();//存入字符数组
for (int i = 0; i < d.Length; i += 4)
{
int unicode_nu = 0;
for (int m = 0; m < 4; m++) //计算 Unicode 十进制值
unicode_nu += HexToDec(d[i + m]) * (1 << ((3 - m) * 4));
Text += (char)unicode_nu; //输出 Unicode 对应字符
}
return Text;//返回短信正文内容
}
private static int HexToDec(char Hex) //16 进制转 10 进制
{
int Dec;
if (Hex >= '0' && Hex <= '9')
Dec = Convert.ToInt16(Hex - '0'); //0-9
else
Dec = Convert.ToInt16(Hex - 'A') + 10;// A-F
return Dec;//返回 10 进制值
}
相关阅读 更多 +