zoukankan      html  css  js  c++  java
  • C#字符串与unicode互相转换

            /// <summary>
            /// 字符串转Unicode 直接Byte的方式,单字节操作
            /// </summary>
            /// <param name="source">源字符串</param>
            /// <returns>Unicode编码后的字符串</returns>
            public static string StringToUnicode(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码字符串    通过Char的方式,一个Char为两个字节
            /// </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字符串转为正常字符串  例如:1的Unicode为 u0031
            /// </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;
            }

    测试环境:https://try.dot.net/

    转自 https://blog.csdn.net/u011511086/article/details/72865006/

  • 相关阅读:
    python
    突然萌发关于 redis 的想法(1)
    Liunx
    Git
    说一下数据库查询 和 分页问题的解决
    易忘点
    python
    python
    python
    python
  • 原文地址:https://www.cnblogs.com/RocCnBlog/p/14304456.html
Copyright © 2011-2022 走看看