[B/S]URL 传递中文参数

解决方法:js中传参时先对中文数据使用escape函数编码,代理中对传入数据解码

1 js中编码

var url="http://127.0.0.1/domcfg.nsf/GetUserInfo?OpenAgent&UserName=" + escape("管理员/Lotus");
var xmlHttp=new ActiveXObject('Microsoft.XMLHTTP');
xmlHttp.open("Post",url,true);
xmlHttp.send("");

2 代理中解码

Dim ss As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument

Set db=ss.CurrentDatabase
Set doc=ss.DocumentContext

Dim strPara As String
strPara=UnEscape(doc.Query_String_Decoded(0))

附:UnEscape解码函数
Function UnEscape(Byval strIn As String) As String
Dim strOut As String
Dim strChar As String
Dim intPos As Integer
Dim strAsc As String
Dim blnAsc As Integer
Do
intPos = intPos + 1
strChar = Mid$(strIn, intPos, 1)
If strChar = "" Then
Exit Do
Elseif strChar = "%" Then
blnAsc = True
Elseif blnAsc Then
If strChar = "u" Then
strAsc = Mid$(strIn, intPos + 1, 4)
intPos = intPos + 4
strOut = strOut & Uchr(Clng("&h" & strAsc))
Else
strAsc = Mid$(strIn, intPos, 2)
intPos = intPos + 1
strOut = strOut & Uchr(Clng("&h" & strAsc))
End If
blnAsc = False
Else
strOut = strOut & strChar
End If
Loop
UnEscape = strOut
End Function

你可能感兴趣的:(url)