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;
            }
        }&nbsp;
  • 相关阅读:
    全国(省,直辖市,自治区,特别行政区)映射集合
    数据库辅助类
    时间格式化工具类
    密码加密(MD5)
    算法竞赛入门经典——第3章答案
    第三章学习小结—-转
    isalpha函数和isdigit函数
    重新实现库函数
    树状数组总结——转
    线段树——转
  • 原文地址:https://www.cnblogs.com/shikyoh/p/3753280.html
Copyright © 2011-2022 走看看