asp.net中url地址传送中文参数时的两种解决方案
2023-06-13 09:14:14 时间
在Web.comfig中配置是一样的:
<globalizationrequestEncoding="gb2312"responseEncoding="gb2312"/>
页面Header部分也都有
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
真是奇怪,
只好用了笨办法:
写参数:
复制代码代码如下:
<globalizationrequestEncoding="gb2312"responseEncoding="gb2312"/>
页面Header部分也都有
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
真是奇怪,
只好用了笨办法:
写参数:
stringstrurl=PreUrl+"?word={0}&sort={1}&check={2}";
strurl=string.Format(strurl,HttpUtility.UrlEncode(this.txtSearchTxt.Text.Trim(),System.Text.Encoding.GetEncoding("GB2312")),this.radioSortDesc.SelectedIndex.ToString(),CheckState.ToString());
Page.Response.Redirect(strurl);
//注意编码方式为gb2312
读参数:
try
{if(Page.Request.QueryString["word"]!=null)
{_word=Convert.ToString(HttpUtility.UrlDecode(Page.Request.QueryString["word"],System.Text.Encoding.GetEncoding("GB2312")));}
}
catch{_word=String.Empty;}
///注意编码方式为gb2312,与前面对应
后来,看了孟子的文章,才发现有更好的解决方案:
用Javascript!
写一个方法放在基类页面中
publicvoidPageLocation(stringchineseURL)
{
if(chineseURL==null||chineseURL.Trim().Length==0)
{return;//还可能不是一个合法的URLTony2007/11/15
}
Page.ClientScript.RegisterStartupScript(this.GetType(),"AgronetPageLocationTo","<scripttype="text/javascript"language="javascript">window.location.href=""+chineseURL+"";</script>");
}
然后在页面中调用
stringstrurl=PreUrl+"?word={0}&sort={1}&check={2}";
strurl=string.Format(strurl,this.txtSearchTxt.Text.Trim(),this.radioSortDesc.SelectedIndex.ToString(),CheckState.ToString());
PageLocation(strurl);
注意后种方法用了Javasrcipt,实际应用在分页时需要保持中文参数,最好还是用window.Location.Href方法!
最后,如果一要在javascript与.net后台代码进行对话,可以这样:
<scriptlanguage="JavaScript">
functionGoUrl()
{
varName="中文参数";
location.href="B.aspx?Name="+escape(Name);
}
</script>
<bodyonclick="GoUrl()">
接收:
stringName=Request.QueryString["Name"];
Response.Write(HttpUtility.UrlDecode(Name));
要点是:
将传递的中文参数进行编码,在接收时再进行解码。
完。
相关文章
- 【水一篇】骚操作之net 6的winform启动的同时启动Net 6 WebApi【同一套代码】
- JetBrains Rider mac/win(跨平台.NET IDE集成开发)最新版
- 创建.NET程序Dump的几种姿势
- .Net Core3.1 SignalR for WPF Asp.net
- .NET Core应用如何通过SSL访问MongoDB?
- 【愚公系列】2023年01月 .NET CORE工具案例-RedLock.net实现分布式锁
- 在 Asp.Net Core 中什么是认证和授权
- 数据库使用.NET连接MySQL数据库(net连接mysql)
- 微软开源 .NET 一年后,ASP.NET 情况分析
- 跨平台利器:.NET在Linux上的运行(.net运行在linux)
- 原理揭秘.NET 运用Redis图灵缓存原理(.net缓存redis)
- Oracle Database: The Ultimate Connection Guide for .NET Developers(net连接oracle)
- NET与Oracle携手走向未来(.net 对oracle)
- 数据使用NET改变Oracle数据库的奥秘(net修改oracle)
- 数据ASP解析MySQL中文数据实现无缝互联(asp接受mysql中文)
- 用Net和MySQL实现软件开发编程(.net mysql编程)
- REDIS锁技术提升NET应用性能(redis 锁 .net)
- ASP.NET中用healthMonitor属性用法
- ASP.NET中实现中文简/繁体自动转换的类
- asp.net(C#)动态添加非ASP的标准html控件(如添加Script标签)
- asp.net中文字符串提交乱码的解决方法
- asp.net下用Aspose.Wordsfor.NET动态生成word文档中的数据表格的方法
- asp.net截取Http请求的实现代码
- 答你所问.NET小常识方便学习asp.net的朋友
- .Net中导出数据到Excel(asp.net和winform程序中)
- .NET中文乱码的解决方法分享
- asp.net自定义控件中注册Javascript问题解决方案