zoukankan      html  css  js  c++  java
  • C#中的System.Web.HttpUtility.UrlEncode转码问题

    最近需要与JAVA程序对接口,其中遇到的URL转码问题:

    Java中URL编码所用的 URLEncoder.encode 产生的字符是大写且英文'(',')'是分别转成'%28'和 '%29'

    而C#中的HttpUtility.UrlEncode产生的字符是小写且英文括号并没有转码,所以两者生成的字符不一致,导致系统出错。

    下面贴出解决方案:

    1、字符大小写问题:

    //对转码后的字符进行大写转换,不会把参数转换成大写(采用)
     public static string GetUpperEncode(string encodeUrl)
            {
                var result = new StringBuilder();
                int index = int.MinValue;
                for (int i = 0; i < encodeUrl.Length; i++)
                {
                    string character = encodeUrl[i].ToString();
                    if (character == "%")
                        index = i;
                    if (i - index == 1 || i - index == 2)
                        character = character.ToUpper();
                    result.Append(character);
                }
                return result.ToString();
            }
    //网上搜的其他方法,通过该方法代替直接调用HttpUtility.UrlEncode
    private static string UrlEncode(string temp, Encoding encoding)
            {
                StringBuilder stringBuilder = new StringBuilder();
                for (int i = 0; i < temp.Length; i++)
                {
                    string t = temp[i].ToString();
                    string k = HttpUtility.UrlEncode(t, encoding);
                    if (t == k)
                    {
                        stringBuilder.Append(t);
                    }
                    else
                    {
                        stringBuilder.Append(k.ToUpper());
                    }
                }
                return stringBuilder.ToString();
            }

    2、英文括号问题:

    //通过替换字符串解决
    encodeurl= encodeurl.Replace("(","%28");
    encodeurl=encodeurl.Replace(")", "%29");
  • 相关阅读:
    使用Dundas控件在web应用上展现多维数据集
    silverlight for olap version milestone 07 updated!
    版本管理客户端工具
    多维数据集数据聚合性能笔记
    关于生成一个随机数组
    Silverlight Dashboards and gauges from codeplex
    在Silverlight下用Visifire显示多维数据集中的数据
    用所能用
    在Vista配置SSAS通过HTTP远程连接的方法.
    手术日记
  • 原文地址:https://www.cnblogs.com/MrZheng/p/11809989.html
Copyright © 2011-2022 走看看