不知道你要的是不是UNICODE转中文string s = "003100320033003400350036";
char[] cs = new char[s.Length/4]; 
for (int i=0,j=0; i < s.Length; i+=4,j++)
{
  cs[j] = (char)Convert.ToInt32(s.Substring(i,4),16);
}
string s2 = new string(cs);
MessageBox.Show(s2);

解决方案 »

  1.   

    多谢CSTerry但是以上代码显示英文字符没问题,没办法正确显示中文,我现在就头疼这个呢,大家再帮帮忙吧~~~小弟多谢了
      

  2.   

    中文没问题啊,比如 string s = "4e2d56fd"; 最后显示“中国”或者你的编码是另外的格式?
      

  3.   

    汉字符到十六进制:
    private string GetHex(string Word){
    int i=Word.Length;
    string temp;
    string end="";
    byte[] array = new byte[2];
    int i1 ,i2;
    for(int j=0;j<i;j++){
    temp=Word.Substring(j,1);
    array = System.Text.Encoding.Default.GetBytes(temp);
    if(array.Length.ToString()=="1"){
    i1=Convert.ToInt32(array[0]);
    end+=Convert.ToString(i1,16);
    }
    else
    {
    i1=Convert.ToInt32(array[0]);
    i2=Convert.ToInt32(array[1]);
    end+=Convert.ToString(i1,16);
    end+=Convert.ToString(i2,16);
    }
    }
    return end.ToUpper();
    }十六进制到汉字串 private string GetGB(string HexStr){
    byte[] oribyte = new byte[HexStr.Length/2];
    for(int i=0;i<HexStr.Length;i+=2)
    {
    string str = Convert.ToInt32(HexStr.Substring(i,2),16).ToString();
    oribyte[i/2] = Convert.ToByte(HexStr.Substring(i,2),16);
    }
    return System.Text.Encoding.Default.GetString(oribyte);//得到最

    }