在URL中传递中文的解决方案

1.通过设置Web.config 指定asp.net应用程序默认的请求和响应编码
<system.web>
    <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312"/>
</system.web>
不过使用这种方式我不知道为什么我的项目登录以后页面根本打不开而且页面标题显示的还是乱码,我使用的环境的win7,使用的ext.net框架,开发环境当然是vs2010了。
2.通过设置aspx页面head指定asp.net应用程序默认的请求和响应编码
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
这种使用方式我没有试过,但是我做了一个测试,不会出现乱码的问题。我使用了第三中方式,在传值以前对中文参数编码
3.在传递中文之前,对将要传递的中文参数进行编码,接受时解码
1)this.pnlSortInfo.AutoLoad.Url = string.Format("ProductTreeManage.aspx?SortID={0}&SortName={1}", _Entity.SortID, Server.UrlEncode(_Entity.SortName));这里是使用Server.UrlEncode
2)this.pnlSortInfo.AutoLoad.Url = string.Format("ProductTreeManage.aspx?SortID={0}&SortName={1}", _Entity.SortID, HttpUtility.UrlEncode(_Entity.SortName,Encoding.GetEncoding("GB2312")));这里使用的是HttpUtility.UrlEncode,可以指定编码方式
3)在javaScipt中
使用escape(参数)
这三种方式的解码都可以使用Server.UrlDecode(参数)进行解码
4.让机器环境支持中文
1)将页面用记事本打开,然后另存为选择"UTF-8"作为编码方式
2)打开注册表确保HKEY_LOCAL_MACHINE\System\CurrentContentControlSet\Services\Inetinfo\Parameters\FavorDBCS值为0
3)修改数值后,重新启动IIS服务

posted @ 2012-07-11 17:03  独孤雄  阅读(956)  评论(0编辑  收藏  举报