+ -
当前位置:首页 → 问答吧 → asp无法获取url中的中文参数

asp无法获取url中的中文参数

时间:2011-10-25

来源:互联网

http://www.izhu.org/PLUGIN/dztaotao/r.asp?t=r&tid=工&u=大猪&e=地sohu.com&s=ee 进地&c=content
大家可以试一下打开这个地址,试着修改一下参数,只要是中文的参数全都无法获取,不知道怎么回事。

作者: myllop   发布时间: 2011-10-25

怎么不行?你怎么获取的?

作者: ChinaXtHuLang   发布时间: 2011-10-25

t=request("tid")
c=request("c")
u=request("u")
s=request("s")
e=request("e")

作者: myllop   发布时间: 2011-10-25

参数传递的时候换成
http://www.izhu.org/PLUGIN/dztaotao/r.asp?t=r&tid=server.HTMLEncode("工")&u=server.HTMLEncode("大猪")&e=server.HTMLEncode("地")sohu.com&s=server.HTMLEncode("ee 进地")&c=content

作者: enjoy_gw   发布时间: 2011-10-25

http://www.izhu.org/PLUGIN/dztaotao/r.asp?t=r&tid=server.HTMLEncode("工")&u=server.HTMLEncode("大猪")&e=server.HTMLEncode("地sohu.com")&s=server.HTMLEncode("ee 进地")&c=content

作者: enjoy_gw   发布时间: 2011-10-25

楼上的。错了吧。是:Server.URLEncode(str)
VB code
LoadUrl = "http://www.izhu.org/PLUGIN/dztaotao/r.asp?t=r&tid="&Server.URLEncode("")&"&u="&Server.URLEncode("大猪")&"&e="&Server.URLEncode("地sohu.com")&"&s="&Server.URLEncode("ee 进地")&"&c=content"
Response.Redirect(LoadUrl)

试试

作者: ChinaXtHuLang   发布时间: 2011-10-25

获取参数的方法:
VB code
<%
  dim myTID 
  myTID = UTF2GB(request("tid"))
%>


UTF2GB函数VB code

<%

'''''''''''''''''''''''''''''''''''''''''''''''
'' UTF转GB---将UTF8编码文字转换为GB编码文字  ''
'''''''''''''''''''''''''''''''''''''''''''''''
function UTF2GB(UTFStr) 

    for Dig=1 to len(UTFStr) 
      '如果UTF8编码文字以%开头则进行转换
      if mid(UTFStr,Dig,1)="%" then 
         'UTF8编码文字大于8则转换为汉字
        if len(UTFStr) >= Dig+8 then 
           GBStr=GBStr & ConvChinese(mid(UTFStr,Dig,9)) 
           Dig=Dig+8 
        else 
          GBStr=GBStr & mid(UTFStr,Dig,1) 
        end if 
      else 
         GBStr=GBStr & mid(UTFStr,Dig,1) 
      end if 
    next 
    UTF2GB=GBStr 
    
end function 
%>

作者: sanoul   发布时间: 2011-10-25

如果是ASP+Ajax传递汉字参数,Ajax默认UTF8,需要将传递URL变换成 'http://127.0.0.1/getPage.asp?param='+escape(v) // v可以是中文,之所以用escape,事实上就是对其编码应使用 encodeURI 和encodeURIComponent 方法

作者: sanoul   发布时间: 2011-10-25