终于解决了 .NET 2.0 的URL解码问题
2006-04-28 21:08
375 查看
现在的接口需要HTTP的处理,有很多需要处理提交的URL,并且要接收URL。
之前一直使用英文,没有发现什么问题,这次测试了一下中文,问题就大了!!!!
用IE提交的中文参数,在VS.NET 2k5 里面怎么样测试都是乱码,也上网查了很多资料,还是搞不定。
我也知道VS.NET 2k5 的默认编码是Unicode,但是转换GB2312也很麻烦,不是好办法。
又看到如果去Request.URL的话就可以取到中文了,于是写了处理URL参数的功能。
但是还是有乱码。。。。郁闷很长时间
最后看到了Request的编码设置,查看了一下编码的设置,默认是Unicode,很对。
设置成GB2312,居然就变成了中文,哈哈,看来默认提交的URL是Unicode,但是显示还是需要GB2312才正常。
于是又去掉处理参数功能,惨,又是乱码!!!
看来还是需要取URL才行啊。。。
一下是部分代码:
//处理Request,解决乱码!!!
Request.ContentEncoding = System.Text.Encoding.Default;
string strUrl = Request.Url.ToString().Substring(Request.Url.ToString().IndexOf("?") + 1);
strMessage = GetArgs("message", HttpUtility.UrlDecode(strUrl));
private string GetArgs(string strArgName, string strUrl)
{
//处理Request,解决乱码!!!
string strArgValue = "";
string[] strList = strUrl.Split('&');
int intCount = strList.Length;
for (int i = 0; i < intCount; i++)
{
int intPos = strList[i].ToString().IndexOf("=");
if (intPos == -1) continue;
string strListArgName = strList[i].ToString().Substring(0, intPos);
if (strListArgName == strArgName)
{
strArgValue = strList[i].ToString().Substring(intPos + 1);
}
}
return strArgValue;
}
之前一直使用英文,没有发现什么问题,这次测试了一下中文,问题就大了!!!!
用IE提交的中文参数,在VS.NET 2k5 里面怎么样测试都是乱码,也上网查了很多资料,还是搞不定。
我也知道VS.NET 2k5 的默认编码是Unicode,但是转换GB2312也很麻烦,不是好办法。
又看到如果去Request.URL的话就可以取到中文了,于是写了处理URL参数的功能。
但是还是有乱码。。。。郁闷很长时间
最后看到了Request的编码设置,查看了一下编码的设置,默认是Unicode,很对。
设置成GB2312,居然就变成了中文,哈哈,看来默认提交的URL是Unicode,但是显示还是需要GB2312才正常。
于是又去掉处理参数功能,惨,又是乱码!!!
看来还是需要取URL才行啊。。。
一下是部分代码:
//处理Request,解决乱码!!!
Request.ContentEncoding = System.Text.Encoding.Default;
string strUrl = Request.Url.ToString().Substring(Request.Url.ToString().IndexOf("?") + 1);
strMessage = GetArgs("message", HttpUtility.UrlDecode(strUrl));
private string GetArgs(string strArgName, string strUrl)
{
//处理Request,解决乱码!!!
string strArgValue = "";
string[] strList = strUrl.Split('&');
int intCount = strList.Length;
for (int i = 0; i < intCount; i++)
{
int intPos = strList[i].ToString().IndexOf("=");
if (intPos == -1) continue;
string strListArgName = strList[i].ToString().Substring(0, intPos);
if (strListArgName == strArgName)
{
strArgValue = strList[i].ToString().Substring(intPos + 1);
}
}
return strArgValue;
}
相关文章推荐
- 终于解决.net 连接oracle数据库时提示的未将对象引用设置到对象的实例的问题
- iOS中文文件名传输或url中存在汉字解决办法(urldecode解码的问题)
- 解决.net 2.0以上版本GDI+绘图保存后在Photoshop中无法识别的问题
- 在.NET中发送邮件,使用回执功能中遇到问题的解决方法[在NOTES服务器上,C#,.NET2.0环境]
- 从 .net 1.1 升级到 2.0过程中遇到的问题及解决方法
- .net 中URL 重写post提交后的地址变为了原地址问题的解决
- .NET 1.1移植到.NET 2.0出现的一些小问题的解决
- S3C6410 硬件JPEG解码无关代码影响解码问题终于得以解决
- 从 .net 1.1 升级到 2.0过程中遇到的问题及解决方法
- 终于解决:升级至.NET 4.6.1后VS2015生成WCF客户端代理类的问题
- VS2010不能识别.net2.0的问题和解决办法
- .Net获取URL中文参数值的乱码问题解决方法总结
- MySQLDriverCS 不支持问题解决 Uint 4.0 .net 2.0
- .NET 4.0 环境下无法直接运行 .NET 2.0 程序的问题,当然目前解决了 (转载--来于园中)
- 从 .net 1.1 升级到 2.0过程中遇到的问题及解决方法
- .net 2.0 中对于非服务器端的input元素 type为file后台无法获取的问题的解决方法
- 应用程序从.net 2.0 升级到.net 4.0 后遇到的问题及解决办法
- 【蛙蛙推荐】.NET 1.1移植到.NET 2.0出现的一些小问题的解决
- .net 解决js传递参数时,url汉字乱码问题