Unicode 2 GB2312

public string UtoGB(string str)
            {
                string[] ss = str.Split('%');
                byte[] bs = new Byte[ss.Length - 1];
                for (int i = 1; i < ss.Length; i++)
                {
                    bs[i - 1] = Convert.ToByte(Convert2Hex(ss[i]));   //ss[0]为空串 
                }

      1:
                char[] chrs = System.Text.Encoding.GetEncoding("GB2312").GetChars(bs);
                string s = "";
                for (int i = 0; i < chrs.Length; i++)
                {
                    s += chrs[i].ToString();
                }

                  return s;

      2:

                  return  System.Text.Encoding.GetEncoding("GB2312").GetString(bs); 
                }
        private string Convert2Hex(string pstr) //转换为16进制
        {
            if (pstr.Length == 2)
            {
                pstr = pstr.ToUpper();
                string hexstr = "0123456789ABCDEF";
                int cint = hexstr.IndexOf(pstr.Substring(0, 1)) * 16 + hexstr.IndexOf(pstr.Substring(1, 1));
                return cint.ToString();
            }
            else
            {
                return "";
            }
        } 

posted @ 2009-06-09 08:09  94cool  阅读(180)  评论(0)    收藏  举报