码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2016-10-09 23:03:47      阅读:786      评论:0      收藏:0      [点我收藏+]

标签:

这个方式其实很多见,特别是使用Json的时候用的比较多,
其实也很简单主要是使用了ToString("x")方法
直接看代码吧

string str = "大家好我是小哲";
            string outStr = "";
            if (!string.IsNullOrEmpty(str))
            {               
                for (int i = 0; i < str.Length; i++)
                {
                    //将中文字符转为10进制整数,然后转为16进制unicode字符
                    outStr += "\\u" + ((int)str).ToString("x");
                }
            }

下面方法是怎么样把UNICODE数据转成中文
就比如说像下面这样的数据吧
\u8c01\u80fd\u591f\u7ed9\u6211\u98ce\u9669\u6295\u8d44\u54e6!\u6211\u60f3\u501f\u5341\u4e07\u529e\u4e00\u4e2a\u517b\u6b96\u5382\u3002\u6211\u53ef\u662f\u6709\u5bb6\u5ead\u62c5\u4fdd\u7684\u54e6!#\u4e0a\u7f51\u7231\u901b\u4ec0\u4e48
这里主要是使用的Parse方法
看具体实现吧

private void Form1_Load(object sender, EventArgs e)
        {
            string str = @"\u8c01\u80fd\u591f";
 
            str = UniconToString(str);
        }
        /// <summary>
        /// 将Unicon字符串转成汉字String
        /// </summary>
        /// <param name="str">Unicon字符串</param>
        /// <returns>汉字字符串</returns>
        public string UniconToString(string str)
        {
            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, System.Globalization.NumberStyles.HexNumber);
                    }
                }
                catch (FormatException ex)
                {
                    outStr = ex.Message;
                }
            }
            return outStr;
        }

 

在编辑框填入的是 \u7B2C01\u96C6
string temp = txtUrl.Text;
Console.WriteLine(Uri.UnescapeDataString("\u7B2C01\u96C6"));只有这个可以解码
Console.WriteLine(Uri.UnescapeDataString(temp));
Console.WriteLine(HttpUtility.UrlDecode(temp, Encoding.UTF8));

 

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

标签:

原文地址:http://www.cnblogs.com/testsec/p/5944014.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!