zoukankan      html  css  js  c++  java
  • 字符编码 进制转换

        字符串的GB2312编码、GBK编码(ASCII码的十六进制字符串,GB2312是对ASCII码的中文扩展)

    public string StrToHex(string mStr) //返回处理后的十六进制字符串
        {
        return BitConverter.ToString(
        ASCIIEncoding.Default.GetBytes(mStr)).Replace("-", " ");
        }

       字符串的GB2312编码、GBK编码转换为普遍字符串 
     public string HexToStr(string mHex) // 返回十六进制代表的字符串,从10进制转为16进制 
        {
        mHex = mHex.Replace(" ", "");
        if (mHex.Length <= 0) return "";
        byte[] vBytes = new byte[mHex.Length / 2];
        for (int i = 0; i < mHex.Length; i += 2)
        if (!byte.TryParse(mHex.Substring(i, 2), NumberStyles.HexNumber, null, out vBytes[i / 2]))
        vBytes[i / 2] = 0;
        return ASCIIEncoding.Default.GetString(vBytes);
        } /* HexToStr */

       

        字符串的Unicode编码

      public static string StringToUnicode(string s)
        {
            StringBuilder outs = new StringBuilder();
            foreach (char item in s)
            {
                    outs.Append(string.Format("\\u{0:x4}", (int)item));
            }
            return outs.ToString();
        }

      

       字符串的UTF8编码

      public static string StringToUtf8(string s)
        {
            string code = "";
            foreach (byte b in Encoding.UTF8.GetBytes(s))
            {
                code += '%' + b.ToString("");
            }
            return code;
        }

        字符串转换为宽字符

         public static string StringToWChar(string s)
        {
            StringBuilder outs = new StringBuilder();
            foreach (char item in s)
            {
                if (IsEncoding(item))//判断是否编码
                {
                    outs.Append(string.Format("\\u{0:x4}", (int)item));
                }
                else//不是中文
                {
                    outs.Append(item);
                }
            }
            return outs.ToString();
        }

        private static bool IsEncoding(char cha)
        {
            string NonEncodingChats = "abcdefghijklmnopqrstuvwxyz0123456789`!@#$%^&*()_+|-=\\,./;'[]{}:<>?";
            return NonEncodingChats.IndexOf(cha) == -1;
        }

       

      想了解 "ANSI,ASCII,Unicode,UTF8的区别与联系"  点击http://www.cnblogs.com/skykang/archive/2011/11/24/2262072.html

       

  • 相关阅读:
    IE8 "开发人员工具" 无法使用,无法显示
    Python中用OpenPyXL处理Excel表格
    calendar函数使用说明【转】
    python之fabric2.0模块学习
    Day9
    Day8
    深入super,看Python如何解决钻石继承难题——转自楚门蔡的测视界
    python/socket编程之粘包
    os模块关于目录
    Day7
  • 原文地址:https://www.cnblogs.com/skykang/p/1939024.html
Copyright © 2011-2022 走看看