/ 文档备忘 / 0浏览

Asp.net 网页间中文传值乱码的解决办法

        前几天同事说要将几个表关联起来,方便查询。想想这还不简单,直接网页之间传个关键值过去就OK了。第一个页面修改好了,传值是中文的,测试下来没问题,部署也没问题,都可以正常显示。

        想想应该可以全部更新了,所以大刀阔斧的修改了网页。测试也正常,中文传值都能正常显示。但是当部署到服务器以后,发现问题来了。。。在大部分电脑上面,只要涉及中文传值的网页,一般点出来都是乱码,难得有几次是正常的中文。但是有的同事每次都很正常。由于有了之前的 Outlook 乱码问题 的经验,可以确定是 URL 编码的问题,所以要更正问题,还是要从源头抓起。

        在传值之前,将需要的值以服务器编码方式发送 NavigateUrl='<%# “asclist.aspx?name=”+Server.UrlEncode(Eval(“维修中心”).ToString()) %>’,接收页面再解码就可以了。不过发现如果接收页面不用Server.UrlDecode 也可以正常解码。。。这样传输的中文字在 URL里面就变成“%CE%AC%D0%DE”。。。 问题解决了 🙂