当前位置: 代码迷 >> ASP.NET >> 接受 Request.Path 的值是乱码,如何会事呢?请进看该url
  详细解决方案

接受 Request.Path 的值是乱码,如何会事呢?请进看该url

热度:1633   发布时间:2013-02-26 00:00:00.0
接受 Request.Path 的值是乱码,怎么会事呢?请进看该url
http://....25/ntid-5_ntn-%c4%bf_menuname-_menustyle-1_action-3=0
我在程序中接收   用   Request.Path   来取值,得到这样的结果:
ntid-5_ntn-Ŀ_menuname-_menustyle-1_action-3=0
“-Ŀ_”这个地方是乱码?怎么会使呢?

超级郁闷!!!!

------解决方案--------------------------------------------------------
你在传值前用url编码,在取值的时候用相应的解码看看
------解决方案--------------------------------------------------------
UrlEncode?
------解决方案--------------------------------------------------------
UrlDecode
------解决方案--------------------------------------------------------
encodeurl()
------解决方案--------------------------------------------------------
不懂,帮顶
------解决方案--------------------------------------------------------
还是建议 楼主 不要在http地址中 使用中文...
------解决方案--------------------------------------------------------
HtmlDecode
------解决方案--------------------------------------------------------
而不是UrlDecode
------解决方案--------------------------------------------------------
楼主 修改
web.config
中的编码 格式 以及页面端编码格式试试
比如utf-8修改成gb2312看看
------解决方案--------------------------------------------------------
ASP.NET很灵活,这归功于它采用文本文件方式的配置方式. 另外的那种用页面标识符的方法应该是从ASP延续下来的. 写ASP+程序时候碰到中文显示问题,运行后发现ASP+从数据库中读出来的中文全部变成了?????,解决办法:

  方法一:

  在config.web中设置globalization段
<configuration>
<globalization
requestencoding= "utf-8 "
responseencoding= "utf-8 "
/>
</configuration>

  可以是utf-8、gb2312等等。

  方法二:

  后来订阅了微软的新闻组,在微软的新闻组dotnet.framework.aspplus.general中发现有讨论这
个问题的文章,方法为添加 <%@ CODEPAGE = "936 " %> 到每一页的开头,有点类似于jsp中的
<%@ page contentType= "text/html;charset=gb2312 "%>
赶紧测试了一下,果然OK!!!

  例子如下面所示:
<%@ CODEPAGE = "936 " %>
<%@ Import Namespace= "System.Data " %>
<%@ Import Namespace= "System.Data.ADO " %>
<%@ Import Namespace= "System.Globalization " %>
<html>
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 ">
  相关解决方案