
ASP.NET解决URL传参中文乱码的三种方法

ASP.NET页面在通过URL传递中文参数时可能出现乱码问题,本文提供了解决这一问题的三种方法。
在ASP.NET开发过程中,当页面间的交互涉及到中文参数时,可能会遇到URL编码导致的乱码现象。以下是针对这个问题的解决策略:
1. 设置Web.config文件
在`<system.web>`部分添加全球化配置,指定请求和响应的编码格式为GBK(国标汉字编码),同时设定文化环境为简体中文。示例如下:
```xml
<system.web>
<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />
</system.web>
```
这样的配置可以确保服务器在处理请求和返回响应时使用正确的字符集。
2. 编码与解码
在传递中文参数前,先使用`Server.UrlEncode()`方法对中文字符串进行编码,接收时使用`Server.UrlDecode()`进行解码。例如:
```csharp
// 传递
string name = "中文参数";
Response.Redirect("B.aspx?Name=" + Server.UrlEncode(name));
// 接收
string name = Request.QueryString["Name"];
Response.Write(Server.UrlDecode(name));
```
3. JavaScript中传递中文参数
当从HTML页面使用JavaScript重定向到ASP.NET页面时,也需要对中文参数进行编码。使用`escape()`函数编码,然后在服务器端解码:
```html
<!-- 进行传递 -->
<script language="JavaScript">
function goUrl() {
var name = "中文参数";
location.href = "B.aspx?Name=" + escape(name);
}
</script>
<body onclick="goUrl()">
<!-- 进行接收 -->
string name = Request.QueryString["Name"];
Response.Write(Server.UrlDecode(name));
```
总结:
通常情况下,通过修改Web.config文件可以解决大部分乱码问题。但如果在JavaScript中调用Web服务(向Web服务传递中文参数)或者不使用服务器端的`Redirect()`方法时,Web.config的设置可能不起作用。在这种情况下,需要在客户端和服务器端分别执行编码和解码操作。对于URL中的中文参数传递,建议使用`System.Web.HttpUtility.UrlEncode()`进行编码,以确保兼容性,如:
```csharp
Response.Redirect("test1.aspx?111=" + System.Web.HttpUtility.UrlEncode("中华人明共和国"));
```
这种方法更为保险,尤其在处理跨平台或国际化的应用时。
相关推荐









zh1376719
- 粉丝: 0
最新资源
- 微软AJAX控件更新:新增功能详解
- JSF+iBATIS+MySQL三合一示例教程与项目文件下载
- 利用Google静态地图API实现带标签的地图Web控件
- C/C++实现的哈夫曼编码器:文件输入输出与译码功能
- Yasm_v0.72:Win32平台下的重要汇编器
- C#实现学生成绩管理系统的管理员功能
- VS2005结合MapX5.0展示自定义形状窗体实例
- JS与JSP结合实现类似资源管理器的树型菜单
- 文件管理新体验:DemoFileManager压缩工具
- C#实现飞鸽传书源代码交流与学习指南
- 深入探讨ASP.NET 2.0与SQL Server 2005开发实践
- Regmon&filemon7.04:高效注册表与文件监测汉化版
- Dreamweaver网页制作全流程PPT教程
- Java初学者指南:自制万年历程序
- 深入理解ASP.NET第九章代码解析
- Web Developer 1.1.6中文版:提升网页开发效率的浏览器扩展
- Java测试题20套精选,快速提升编程能力
- 揭秘华为精选面试题:实践验证过的挑战
- Delphi 2009和C++Builder 2009 Update 2更新内容
- 华中科技大学数学系《复变函数》第三版核心解析
- ExtJs基础应用实例教程
- 操作系统中的优先权处理机调度算法实现
- dcu2pas: 将Delphi DCU文件转为PAS源代码
- 开源E_Learning平台DotNetScrom项目解析