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 = ; i < encodeUrl.Length; i++)
{
string character = encodeUrl[i].ToString();
if (character == "%")
index = i;
if (i - index == || i - index == )
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 = ; 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");
C#中的System.Web.HttpUtility.UrlEncode转码问题的更多相关文章
- JS三个编码函数和net编码System.Web.HttpUtility.UrlEncode比较
JS三个编码函数和net编码比较 总结 1.escape.encodeUri.encodeUriComponent均不会对数字.字母进行编码.2.escape:对某些字符(如中文)进行unicode编 ...
- c#asp.net url 传递中文参数要使用 System.Web.HttpUtility.UrlEncode 而不能使用Server.UrlEncode
最近网站里的参数包括中文的例如: http://www.taiba/Tag%b0%ae%c7%e9.html 已开始使用 Server.UrlEncode来做的,但发现,有一些中文在url重写的是说找 ...
- asp.net URL传递中文参数System.Web.HttpUtility.UrlEncode与Server.UrlEncode的区别
asp.net URL传递中文参数System.Web.HttpUtility.UrlEncode与Server.UrlEncode的区别(一) HttpUtility.UrlEncode 方法: 对 ...
- [转载]未能从程序集“System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”中加载类型“System.Web.WebPages.DisplayModeProvider”
转载于http://bkcoding.cn/post_1210.html 使用vs2010开发asp.net mvc程序时,出现 未能从程序集“System.Web.WebPages, Version ...
- System.Web.HttpUtility VS System.Web.HttpServerUtility VS System.Net.WebUtility
HttpUtility 类作为 HttpServerUtility 类的内部使用,HttpServerUtility 通过System.Web.UI.Page.Server属性(WebForm)/Co ...
- 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 // 节中包括 System.Web.SessionSta
我直接在父类的构造方法中调用了sessionj结果就报这个错误 搜了好久 让改web.config 可是不起作用 代码如下: public class BasePage:System.Web.UI.P ...
- log4net 中错误 System.Web.HttpException (0x80004005): 文件不存在
用日志组件,Global 中配置的输出最后一个错误信息,总是出现下面的错误信息: 2014-04-01 14:35:41,757 级别:ERROR 信息:[Exception]:System.Web. ...
- C#中使用System.Web.Mail.MailMessage类无法CC多人的问题
从.NET 2.0 开始,引入了一个新的类,System.Net.Mail.MailMessage.该类用来取代 .NET 1.1 时代System.Web.Mail.MailMessage类.Sys ...
- HttpUtility.UrlEncode与Server.UrlEncode()转码区别
在对URL进行编码时,该用哪一个?这两都使用上有什么区别吗?测试: string file="文件上(传)篇.doc";string Server_UrlEncode=Server ...
随机推荐
- MyBatis项目配置案例详解与Web下的增删改查实现[附项目源码]
MyBatis项目案例 项目图示: 项目源码地址:https://github.com/JluTiger/mybatispro 1.项目功能 项目案例:后台管理系统用户数据维护平台 所有用户数据查询 ...
- 三大框架 之 OGNL表达式
目录 OGNL 什么是OGNL OGNL与EL表达式对比 OGNL功能 OGNL使用要素 OGNL入门 java程序使用ognl struts2中使用ONGL OGNL 什么是OGNL OGNL是Ob ...
- element-ui表格显示html格式
<el-table-column type="String" label="内容" prop="tpl" width="58 ...
- maven仓库失效的情况下搭建maven项目
maven仓库失效的情况下搭建maven项目 1,在有maven仓库的情况下mvn clean package 2,整个项目拷贝到没有的环境下 3,ls |xargs -t -I a cp a/pom ...
- iftop -i eth0 -B -F
iftop -i eth0 -B -F 108.51.5.220 1 https://www.cnblogs.com/kobexffx/p/11000337.html
- SSA与ASS字幕
SSA字幕与ASS字幕 SSA全称SubStationAlpha,是由CSLow(又称Kotus)创建的一种字幕格式,用以实现比传统字幕诸如srt等格式更为复杂的功能.SSA目前的版本为v4.00.S ...
- vs2017发布后宕机,没有响应解决方法
找到项目下:Properties\PublishProfiles 删除:FolderProfile.pubxml.user
- [转]Android四大核心组件:Activity+Service+BroadcastReceiver+ContentProvider
原文地址:http://c.biancheng.net/view/2918.html Android 作为一个移动设备的开发平台,其软件层次结构包含操作系统 (OS).中间件 (MiddleWare) ...
- YII2 输出 执行的 SQL 语句,直接用程序输出
$query = User::find() ->,,,]) ->select(['username']) // 输出SQL语句 $commandQuery = clone $query; ...
- ubuntu上的 /dev/loop0 到 /dev/loop18占到100%的处理
date : 2019-08-13 09:39:09 author: headsen chen 处理方法:apt autoremove --purge snapd 再次检测: