zoukankan      html  css  js  c++  java
  • .net unicode汉字互相转换

    【两种方法】.net unicode汉字互相转换
    
    =========================================
    
    
     
    
    
    //汉字转Unicode编码(ASCII)
    
    private string StringToUnicode(string srcText)
    
            {
    
                string dst = "";
    
                char[] src = srcText.ToCharArray();
    
                for (int i = 0; i < src.Length; i++)
    
                {
    
                    byte[] bytes = Encoding.Unicode.GetBytes(src[i].ToString());
    
                    string str = @"u" + bytes[1].ToString("X2") + bytes[0].ToString("X2");
    
                    dst += str;
    
                }
    
                return dst;
    
            }
    
     
    
    //TO汉字 srcText为去除u之后的4位字符
    
    
    using System.Globalization;
    
    
    
    private string ToCN(string srcText)
    
            {
    
                string str = srcText;
    
                byte[] bytes = new byte[2];
    
                bytes[1] = byte.Parse(int.Parse(str.Substring(0, 2), NumberStyles.HexNumber).ToString());
    
                bytes[0] = byte.Parse(int.Parse(str.Substring(2), NumberStyles.HexNumber).ToString());
    
                return Encoding.Unicode.GetString(bytes);
    
            }
    
    
     
    
    ================================================================
    public static string ConvertToGB(string unicodeString)  
         {  
             string[] strArray = unicodeString.Split(new string[] { @"u" }, StringSplitOptions.None);  
             string result = string.Empty;  
             for (int i = 0; i < strArray.Length; i++)  
             {  
                 if (strArray[i].Trim() == "" || strArray[i].Length < 2 || strArray.Length <= 1)  
                 {  
                     result += i == 0 ? strArray[i] : @"u" + strArray[i]; continue;  
                 }   
                 for (int j = strArray[i].Length > 4 ? 4 : strArray[i].Length; j >= 2; j--)  
                 {  
                     try  
                     {  
                         result += char.ConvertFromUtf32(Convert.ToInt32(strArray[i].Substring(0, j), 16)) + strArray[i].Substring(j);  
                         break;  
                     }  
                     catch  
                     {  
                         continue;  
                     }  
                 }  
             } return result;  
         }  
      
         public static string ConvertToUnicode(string strGB)  
         {  
             char[] chs = strGB.ToCharArray(); string result = string.Empty; foreach (char c in chs)  
             {  
                 result += @"u" + char.ConvertToUtf32(c.ToString(), 0).ToString("x");  
             }  
             return result;  
         }
    /// <summary>
        /// 普通字符串与UniCode字符串间转换
        /// </summary>
        public static class StringToUniCode
        {
            /// <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), NumberStyles.HexNumber).ToString());
                    bytes[0] = byte.Parse(int.Parse(str.Substring(2, 2), NumberStyles.HexNumber).ToString());
                    dst += Encoding.Unicode.GetString(bytes);
                }
                return dst;
            }
        }
  • 相关阅读:
    [MacOS]Sublime text3 安装(一)
    [RHEL8]开启BBR
    PAT Advanced 1136 A Delayed Palindrome (20分)
    PAT Advanced 1144 The Missing Number (20分)
    PAT Advanced 1041 Be Unique (20分)
    PAT Advanced 1025 PAT Ranking (25分)
    PAT Advanced 1022 Digital Library (30分)
    PAT Advanced 1019 General Palindromic Number (20分)
    PAT Advanced 1011 World Cup Betting (20分)
    PAT Advanced 1102 Invert a Binary Tree (25分)
  • 原文地址:https://www.cnblogs.com/liuxiaoji/p/6688767.html
Copyright © 2011-2022 走看看