日期:2014-05-19  浏览次数:20749 次

请教高手:“?”为何变成了“%3f”?
用C/S程序打开指定的网页传参数:
Process.Start( "IExplore.exe ",@ "E:\code\vs2003\C#\myapp\news_grid.htm?user=admin ");

执行后在浏览器中变成:E:\code\vs2003\C%23\myapp\news_grid.htm%3fuser=admin

请问这是怎么回事?谢谢

------解决方案--------------------
? ?
两个不一样

------解决方案--------------------
被编码了
# %23
? %3f
------解决方案--------------------
UrlEncode(str)
------解决方案--------------------
没错误 只是没找到而已,换个正确的路径就不会弹了
------解决方案--------------------
应该是编码问题吧 urlencode()
------解决方案--------------------
解码后执行
------解决方案--------------------
ASCII码
------解决方案--------------------
晕~!怎么会是ASCII码呢!
小问号ASCII码为:63
大问号为:65311

------解决方案--------------------
你的参数传递的是@ "E:\code\vs2003\C#\myapp\news_grid.htm?user=admin ",实际上这是一个文件请求而不是http请求,文件路径不支持 "? ".
------解决方案--------------------
要在C/S程序中调用结合web系统,那就应该将web系统发布,比如发web系统站点名为WebApp,调用方式应该为System.Diagnostics.Process.Start( "IExplore.exe ",( "http://Localost/Code/vs2003/C#/myapp/news_grid.htm?user=admin "));
------解决方案--------------------
你现在调用的是你的本地路径,你换一个http网址试试,应该就不会出现这个问题

调试的时候不要用自已设想的本地路径,将来运行的时候,又不会调用本地路径