• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#UrlCode

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
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);
        }

 


 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#面向对象之面向接口发布时间:2022-07-10
下一篇:
ASP.NETRazor-C#循环和数组发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap