根据Unicode编码用C#语言把它转换成汉字的代码

本文详细解析了如何使用C#语言将Unicode编码转换为汉字,包括使用正则表达式和JSON库进行处理的方法,并提供了一种简化版的实现方式。重点介绍了代码逻辑、流程和关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rt 根据所具有的Unicode编码用C#语言把它转换成汉字的代码

var s = System.Web.HttpUtility.HtmlDecode(Utf8Str);
var o = Newtonsoft.Json.JsonConvert.DeserializeObject<String[][]>(Utf8Str);

var o1 = Newtonsoft.Json.JsonConvert.DeserializeObject(Utf8Str);

//var resp = JsonConvert.DeserializeObject<Resp>(respString);

?(o1 as Newtonsoft.Json.Linq.JContainer).First

 

师傅的代码:

 

public static string UnicodeToGB( string text)
        {
            System.Text.RegularExpressions.MatchCollection mc = System.Text.RegularExpressions.Regex.Matches(text, "\\\\u([\\w]{4})" );
            if (mc != null && mc.Count > 0)
            {
                foreach (System.Text.RegularExpressions.Match m2 in mc)
                {
                    string v = m2.Value;
                    string word = v.Substring(2);
                    byte [] codes = new byte [2];
                    int code = Convert.ToInt32(word.Substring(0, 2), 16);
                    int code2 = Convert.ToInt32(word.Substring(2), 16);
                    codes[0] = ( byte )code2;
                    codes[1] = ( byte )code;
                    text = text.Replace(v, Encoding.Unicode.GetString(codes));
                }
            }
            else
            {
 
            }
            return text;
        }
 
  这是以foreach来处理每个正则表达式的值并且连接起来代码

 

我根据师傅的代码修改的代码,虽然简短了点但是运用的确实for循环

public static string unicodetogb( string text)
{
    System.Text.RegularExpressions.MatchCollection mc = System.Text.RegularExpressions.Regex.Matches(text, "\\\\u([\\w]{4})" );
    string a = text.Replace( "\\u" , "" );
    char [] arr = new char [mc.Count];
    for ( int i = 0; i < arr.Length; i++)
    {
        arr[i] = ( char )Convert.ToInt32(a.Substring(i * 4, 4), 16);
    }
    string c = new string (arr);
    return c;
}

  其中 mc是通过以迭代方式将正则表达式模式应用于输入字符串所找到的成功匹配的集合,它具有count属性。我是把整个Unicode代码转换成没有\u的字符串然后对其进行处理的方法。

转载于:https://www.cnblogs.com/xdot/p/4614281.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值