Blame view

Yi.Abp.Net8/framework/Yi.Framework.Core/Helper/UnicodeHelper.cs 1.67 KB
515fceeb   “wangming”   框架初始化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
  using System;
  using System.Text;
  using System.Text.RegularExpressions;
  
  namespace Yi.Framework.Core.Helper
  {
      public static class UnicodeHelper
      {
          /// <summary>
          /// 字符串转Unicode
          /// </summary>
          /// <returns>The to unicode.</returns>
          /// <param name="value">Value.</param>
          public static string StringToUnicode(string value)
          {
              byte[] bytes = Encoding.Unicode.GetBytes(value);
              StringBuilder stringBuilder = new StringBuilder();
              for (int i = 0; i < bytes.Length; i += 2)
              {
                  // 取两个字符,每个字符都是右对齐。
                  stringBuilder.AppendFormat("u{0}{1}", bytes[i + 1].ToString("x").PadLeft(2, '0'), bytes[i].ToString("x").PadLeft(2, '0'));
              }
              return stringBuilder.ToString();
          }
  
          /// <summary>
          /// Unicode转字符串
          /// </summary>
          /// <returns>The to string.</returns>
          /// <param name="unicode">Unicode.</param>
          public static string UnicodeToString(string unicode)
          {
              unicode = unicode.Replace("%", "\\");
  
              return new Regex(@"\\u([0-9A-F]{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled).Replace(
                   unicode, x => string.Empty + Convert.ToChar(Convert.ToUInt16(x.Result("$1"), 16)));
  
              //string resultStr = "";
              //string[] strList = unicode.Split('u');
              //for (int i = 1; i < strList.Length; i++)
              //{
              //    resultStr += (char)int.Parse(strList[i], System.Globalization.NumberStyles.HexNumber);
              //}
              //return resultStr;
          }
      }
  }