c#中文和UNICODE字符转换方法

//可以包括其他字符       
 public string uncode(string str)
        {
            string outStr = "";
            Regex reg = new Regex(@"(?i)//u([0-9a-f]{4})");
            outStr = reg.Replace(str, delegate(Match m1)
            {
                return ((char)Convert.ToInt32(m1.Groups[1].Value, 16)).ToString();
            });
            return outStr;
        }

 

 

//中文转为UNICODE字符
string str = "中文";
            string outStr = "";
            if (!string.IsNullOrEmpty(str))
            {                
                for (int i = 0; i < str.Length; i++)
                {
                    //将中文字符转为10进制整数,然后转为16进制unicode字符
                    outStr += "//u" + ((int)str[i]).ToString("x");
                }
            }
 
 
//UNICODE字符转为中文
            string str = "//u4e2d//u6587";
            string outStr = "";
            if (!string.IsNullOrEmpty(str))
            {
                string[] strlist = str.Replace("//","").Split('u');
                try
                {
                    for (int i = 1; i < strlist.Length; i++)
                    {
                        //将unicode字符转为10进制整数,然后转为char中文字符
                        outStr += (char)int.Parse(strlist[i], System.Globalization.NumberStyles.HexNumber);
                    }
                }
                catch (FormatException ex)
                {
                    outStr = ex.Message;
                }

            } 

posted @ 2012-07-25 17:53  '.Elvis.'  阅读(561)  评论(0编辑  收藏  举报