此问题遵循an earlier one。
以下是一些可以重现问题的代码:
POST:
str = "accountRequest=<NewUser>" & vbLf & _
"Hello" & vbTab & "World" & vbLf & _
"</NewUser>"
Set objHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
objHTTP.open "POST", "service.asp", False
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.send str
response.Write(objHTTP.responseText)
Set objHTTP = Nothing
service.asp:
function w (str)
response.Write(str & "<br>")
end function
str = request.Form("accountRequest")
w(str)
w("Tabs: "& InStr(str,vbTab))
w("Lines: "& InStr(str,vbLf))
输出:
HelloWorld
Tabs: 0
Lines: 0
有人可以帮忙吗?
答案 0 :(得分:0)
尝试:
Replace(Request.Form("accountRequest"), vbLF, vbCRLF))
或者:
Replace(Request.Form("accountRequest"), vbLF, "<br>"))|
根据您显示的位置,两者都应该有效。
或者可能这样:
Function URLDecode(sConvert)
Dim aSplit
Dim sOutput
Dim I
If IsNull(sConvert) Then
URLDecode = ""
Exit Function
End If
' convert all pluses to spaces
sOutput = REPLACE(sConvert, "+", " ")
' next convert %hexdigits to the character
aSplit = Split(sOutput, "%")
If IsArray(aSplit) Then
sOutput = aSplit(0)
For I = 0 to UBound(aSplit) - 1
sOutput = sOutput & _
Chr("&H" & Left(aSplit(i + 1), 2)) &_
Right(aSplit(i + 1), Len(aSplit(i + 1)) - 2)
Next
End If
URLDecode = sOutput
End Function
从这里开始:http://www.aspnut.com/reference/encoding.asp
如果它们以实际的“\”和“n”字符形式出现,则可以使用相应的vbCRLF和vbTAB常量替换这些字符。
答案 1 :(得分:0)
最后发现,如果ASP Request.Form
方法采用“\ t”格式(而不是URL编码),则它不会保留标签。但是,PHP的$_POST
会这样做。