利用C#怎么將字符串轉(zhuǎn)換成unicode-創(chuàng)新互聯(lián)

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

網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)過(guò)程中,需要針對(duì)客戶的行業(yè)特點(diǎn)、產(chǎn)品特性、目標(biāo)受眾和市場(chǎng)情況進(jìn)行定位分析,以確定網(wǎng)站的風(fēng)格、色彩、版式、交互等方面的設(shè)計(jì)方向。創(chuàng)新互聯(lián)還需要根據(jù)客戶的需求進(jìn)行功能模塊的開(kāi)發(fā)和設(shè)計(jì),包括內(nèi)容管理、前臺(tái)展示、用戶權(quán)限管理、數(shù)據(jù)統(tǒng)計(jì)和安全保護(hù)等功能。
/// <summary>
  /// 字符串轉(zhuǎn)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> 
  /// 字符串轉(zhuǎn)為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字符串轉(zhuǎn)為正常字符串 
  /// </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;
  }

補(bǔ)充:C# unicode string 轉(zhuǎn)換 codepoint

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

通過(guò)計(jì)算,可以把這種形式的字符串,直接轉(zhuǎn)化為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));
  }

使用的時(shí)候codepoint需要強(qiáng)轉(zhuǎn)為char類型。比如:

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

上述內(nèi)容就是利用C#怎么將字符串轉(zhuǎn)換成unicode,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享名稱:利用C#怎么將字符串轉(zhuǎn)換成unicode-創(chuàng)新互聯(lián)
分享鏈接:http://muchs.cn/article10/dpssgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)、微信小程序、云服務(wù)器網(wǎng)站建設(shè)、網(wǎng)站改版、全網(wǎng)營(yíng)銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站