zoukankan      html  css  js  c++  java
  • c# UrlCode

    public string UrlEncode(string txt)
            {
                StringBuilder sb = new StringBuilder();
                byte[] byStr = System.Text.Encoding.UTF8.GetBytes(txt); //默认是System.Text.Encoding.Default.GetBytes(str)
                for (int i = 0; i < byStr.Length; i++)
                {
                    sb.Append(@"%" + Convert.ToString(byStr[i], 16));
                }
                return (sb.ToString());
            }
    
            public string Urlcode(string txt)
            {
                string[] values = txt.Split('%');
                StringBuilder sb = new StringBuilder();
                byte[] bytes = new byte[values.Length - 1];
                for (int i = 1; i < values.Length; i++)
                {
                    bytes[i - 1] = Convert.ToByte(values[i], 16);
                }
                sb.Append(System.Text.Encoding.UTF8.GetString(bytes, 0, bytes.Length));
                return (sb.ToString());
            }
    /// <summary>
            /// 为了保密,在将文字信息保存到XML文件中之前,先将要保密的信息进行加密处理
            /// </summary>
            /// <param name="v">要加密的文字信息</param>
            /// <returns>已加密的文字信息</returns>
            public string encrypt(string v)
            {
                string ev = "";
                try
                {
                    byte[] bs = StringUtility.StringToBytes(Encoding.Unicode, v);
                    for (int i = 0; i < bs.Length; i++)
                    {
                        int n = int.Parse(bs[i].ToString("x"), NumberStyles.HexNumber);
                        ev += "/" + (255 + 17 - n);
                    }
                    ev = (ev.Length > 1 ? ev.Substring(1) : "");
                }
                catch { ev = ""; }
                return ev;
            }
    
            /// <summary>
            /// 在将加密文字信息从XML文件中取出之后,应进行解密处理
            /// </summary>
            /// <param name="ev">要解密的文字信息</param>
            /// <returns>已解密的文字信息</returns>
            public string unchain(string ev)
            {
                string v = "";
                try
                {
                    string[] ss = StringUtility.Split(ev, "/");
                    byte[] bs = new byte[ss.Length];
                    for (int i = 0; i < ss.Length; i++)
                    {
                        int n = int.Parse(ss[i]);
                        bs[i] = (byte)(255 + 17 - n);
                    }
                    v = StringUtility.BytesToString(Encoding.Unicode, bs);
                }
                catch { v = ""; }
                return v;
            }
    
    /// <summary>
            /// 按指定的字符编码,把字节数组转换成字符串
            /// </summary>
            /// <param name="ec">字符编码。</param>
            /// <param name="bs">字节数组</param>
            /// <returns></returns>
            public static string BytesToString(Encoding ec, byte[] bs)
            {
                char[] cs = new char[ec.GetCharCount(bs, 0, bs.Length)];
                ec.GetChars(bs, 0, bs.Length, cs, 0);
                string rs = new string(cs);
                return rs;
            }
    
            /// <summary>
            /// 按缺省的字符编码,把字节数组转换成字符串
            /// </summary>
            /// <param name="bs"></param>
            /// <returns></returns>
            public static string BytesToString(byte[] bs)
            {
                return BytesToString(Encoding.Default, bs);
            }
    
    
    
    
    
  • 相关阅读:
    【一天一道兼容性】之——IE6下fixed失效
    【前端重构技能天赋】(三)——最终篇
    Putty中文乱码问题
    Cygwin Application initialization failed: no display name and no $DISPLAY environment
    c++中的string用法(二)
    在win7下面使用cygwin,并且安装使用git,以及git简明教程
    vi 一些命令(备忘,自己用的)
    对C++中string类型的总结
    ofstream和ifstream详细用法
    写第一个shell脚本,遇到的问题总结整理。
  • 原文地址:https://www.cnblogs.com/xsmhero/p/2871195.html
Copyright © 2011-2022 走看看