91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用C#怎么將字符串轉換成unicode

發布時間:2021-01-13 14:01:42 來源:億速云 閱讀:542 作者:Leah 欄目:開發技術

本篇文章為大家展示了利用C#怎么將字符串轉換成unicode,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

/// <summary>
  /// 字符串轉Unicode
  /// </summary>
  /// <param name="source">源字符串</param>
  /// <returns>Unicode編碼后的字符串</returns>
  public static string String2Unicode(string source)
  {
   var bytes = Encoding.Unicode.GetBytes(source);
   var stringBuilder = new StringBuilder();
   for (var i = 0; i < bytes.Length; i += 2)
   {  
    stringBuilder.AppendFormat("\\u{0:x2}{1:x2}", bytes[i + 1], bytes[i]);
   }
   return stringBuilder.ToString();
  }
  /// <summary> 
  /// 字符串轉為UniCode碼字符串 
  /// </summary> 
  /// <param name="s"></param> 
  /// <returns></returns> 
  public static string StringToUnicode(string s)
  {
   char[] charbuffers = s.ToCharArray();
   byte[] buffer;
   StringBuilder sb = new StringBuilder();
   for (int i = 0; i < charbuffers.Length; i++)
   {
    buffer = System.Text.Encoding.Unicode.GetBytes(charbuffers[i].ToString());
    sb.Append(String.Format("\\u{0:X2}{1:X2}", buffer[1], buffer[0]));
   }
   return sb.ToString();
  }
  /// <summary> 
  /// Unicode字符串轉為正常字符串 
  /// </summary> 
  /// <param name="srcText"></param> 
  /// <returns></returns> 
  public static string UnicodeToString(string srcText)
  {
   string dst = "";
   string src = srcText;
   int len = srcText.Length / 6;
   for (int i = 0; i <= len - 1; i++)
   {
    string str = "";
    str = src.Substring(0, 6).Substring(2);
    src = src.Substring(6);
    byte[] bytes = new byte[2];
    bytes[1] = byte.Parse(int.Parse(str.Substring(0, 2), System.Globalization.NumberStyles.HexNumber).ToString());
    bytes[0] = byte.Parse(int.Parse(str.Substring(2, 2), System.Globalization.NumberStyles.HexNumber).ToString());
    dst += Encoding.Unicode.GetString(bytes);
   }
   return dst;
  }

補充:C# unicode string 轉換 codepoint

C# 的string和StringBuilder都支持使用codepoint直接構造字符串。unicode的字符串形式一般都是'\u1234'這種轉義模式。 其中‘1234'就是unicode codepoint的16進制形式。

通過計算,可以把這種形式的字符串,直接轉化為int32類型的codepoint。

/// <summary>
  /// Get the unicode code point
  /// </summary>
  private static int GetUnicodeCodePoint(char c1, char c2, char c3, char c4)
  {
   return UnicodeCharToInt(c1) * 0x1000 +
     UnicodeCharToInt(c2) * 0x100 +
     UnicodeCharToInt(c3) * 0x10 +
     UnicodeCharToInt(c4);
  }
  /// <summary>
  /// Single unicode char convert to int
  /// </summary>
  private static int UnicodeCharToInt(char c)
  {
   switch (c)
   {
    case '0':
    case '1':
    case '2':
    case '3':
    case '4':
    case '5':
    case '6':
    case '7':
    case '8':
    case '9':
     return c - '0';
    case 'a':
    case 'b':
    case 'c':
    case 'd':
    case 'e':
    case 'f':
     return c - 'a' + 10;
    case 'A':
    case 'B':
    case 'C':
    case 'D':
    case 'E':
    case 'F':
     return c - 'A' + 10;
   }
   throw new Exception(string.Format("Unicode char '{0}' error", c));
  }

使用的時候codepoint需要強轉為char類型。比如:

StringBuilder sb = new StringBuilder();
sb.Append((char) GetUnicodeCodePoint(c1, c2, c3, c4));

上述內容就是利用C#怎么將字符串轉換成unicode,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桃江县| 始兴县| 谷城县| 达日县| 天祝| 连平县| 伊通| 玉树县| 和硕县| 新巴尔虎右旗| 金门县| 达孜县| 巴塘县| 黑山县| 淳安县| 海宁市| 黔江区| 买车| 苏州市| 清流县| 汤阴县| 工布江达县| 蒙城县| 永顺县| 双桥区| 蒲城县| 错那县| 陕西省| 忻城县| 永丰县| 辽阳县| 福海县| 阳新县| 呼玛县| 通海县| 东安县| 昌江| 定远县| 会宁县| 华蓥市| 丰镇市|