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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 中文和UNICODE字符转换方法相关的知识,希望对你有一定的参考价值。

这个方式其实很多见,特别是使用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字符转换方法的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中将 HTML 实体转换为 Unicode 字符

C#字符串与unicode互相转换

C#学习笔记——需要注意的基础知识

C#语言中字符类char的使用方法(总结)

在 C# 中将上标转换为 Unicode [关闭]

将十六进制 unicode 字符转换为其可视化表示