终于解决了 .NET 2.0 的URL解码问题
来源:互联网 发布:reach认证 知乎 编辑:程序博客网 时间:2024/05/22 01:32
现在的接口需要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;
}
- 终于解决了 .NET 2.0 的URL解码问题
- 困惑了半年的用Prototype在url中传特殊符号的问题终于解决了!
- 问题终于解决了
- 纠结的gb2312解码问题,终于曲线解决
- 终于解决昨天的问题了
- ruby的奇怪问题~~~终于解决了.!
- FreeTextBox的问题终于解决了
- 终于解决了liferay的缓存问题!
- 终于解决了liferay的缓存问题!
- 终于解决了NHibernate的排序问题
- 图像读写的问题终于解决了
- 终于解决了mmap的问题
- 终于解决无线连接不成功的问题了
- 终于解决了的Radio问题
- libusb的问题终于解决了
- 终于解决Tslib的问题了
- 文件读取的问题终于解决了!
- IRQL_NOT_LESS_OR_EQUAL的问题终于算解决了
- sql server 與IIS
- Units in QReport and Other summary(关于QReport中的Unit)
- ADSL造成系统假死之谜
- Rapidshare AIO v2.1
- 自动生成迷宫
- 终于解决了 .NET 2.0 的URL解码问题
- EVC4 安装与初步使用
- JSP和MYSQL出现乱码的情况
- 有了春天的气息了!
- RSF ("Reasonable Server Faces") version 0.6.1 released
- SQL查询语句的书写要点(基础二、函数)(未完成,先不要看,没有实质内容)
- 计算本月底是几号
- 分析petshop3.0显示产品列表
- 解析petshop3.0的顶部信息