Unicode转换成汉字的C#解码代码


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

师傅的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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循环

1
2
3
4
5
6
7
8
9
10
11
12
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的字符串然后对其进行处理的方法。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM