2014-10-01 37 views
0

我們如何轉換UTF-8 HEX:EE 94 93成等價的表情表示:1f1e8,1f1f3轉換UTF-8十六進制到的表情符號表示

從這裏取:http://www.iemoji.com/view/emoji/175/places/regional-indicator-symbol-letters-cn

+1

'系統.Text.Encoding.UTF8.GetString(new byte [] {238,148,147})' – cdhowie 2014-10-01 22:55:40

+0

@cdhowie不會給你等效的表情符號表示法:1f1e8,1f1f3所有 – 2014-10-01 23:03:42

+0

@cdhowie我已經說明了我的問題 – 2014-10-01 23:06:05

回答

0
public static string ConvertEmoji2UnicodeHex(string emoji) 
     { 
      if (string.IsNullOrWhiteSpace(emoji)) 
       return emoji; 

      byte[] bytes = Encoding.UTF8.GetBytes(emoji); 
      string firstItem = Convert.ToString(bytes[0], 2); 

      int iv; 
      if (bytes.Length == 1) 
      { 
       iv = Convert.ToInt32(firstItem, 2); 
      } 
      else 
      { 
       StringBuilder sbBinary = new StringBuilder(); 
       sbBinary.Append(firstItem.Substring(bytes.Length + 1).TrimStart('0')); 
       for (int i = 1; i < bytes.Length; i++) 
       { 
        string item = Convert.ToString(bytes[i], 2); 
        item = item.Substring(2); 
        sbBinary.Append(item); 
       } 

       iv = Convert.ToInt32(sbBinary.ToString(), 2); 
      } 

      return Convert.ToString(iv, 16).PadLeft(4, '0'); 
     } 
+1

歡迎來到Stack Overflow!不鼓勵使用僅有代碼的答案。嘗試解釋你的答案如何解決OP問題。你可能想閱讀[如何寫出一個好答案](http://stackoverflow.com/help/how-to-answer)。 – 2016-11-10 03:12:26

相關問題