在代理中通过lotusscript进行页面跳转时,需要将表单中的一个域作为条件进行跳转,表单保存成功后,用以下语句跳转:
Print "window.location.href='http://192.140.2.1/cs.jsp?id="+rc+"'"
rc是一个文本域,里面存的是中文,现在跳转过去以后,JSP页面得到的是rc是乱码,JSP页面是GB2312的,而且我也做了ISO8859_1的编码转换,但还是乱码,用UTF-8也是乱码,如果rc存的是英文就没问题,请问,是不是需要在lotusscript中将域rc的值先转成gb2312后,再作为参数进行传递,请问应该怎么写或这么解决这个问题。
------解决方案--------------------
建议你将中文用Encode函数转码,JSP再使用decode函数转码得到中文。如下是LS写的urlDecode和urlEncode
---------------------------
Function urlDecode(strTemp As String,strCharset) As String
%REM
URL解码函数
strTemp 需要解码的字符串
strCharset 字符集
%END REM
If strTemp <> "" Then
Dim ns As New NotesSession
Dim doc As NotesDocument
Set doc=ns.CurrentDatabase.CreateDocument()
doc.fldTemp = strTemp
Dim vrnTemp As Variant
'Msgbox
------解决方案--------------------
@URLDecode("
------解决方案--------------------
& strCharset &
------解决方案--------------------
";"
------解决方案--------------------
+ strTemp +
------解决方案--------------------
")
------解决方案--------------------
vrnTemp = Evaluate(
------解决方案--------------------
@URLDecode("
------解决方案--------------------
& strCharset &
------解决方案--------------------
";fldTemp)
------解决方案--------------------
,doc)
urlDecode = vrnTemp(0)
Else
urlDecode = strTemp
End If
End Function
Function urlEncode(strTemp As String,strCharset) As String
%REM
URL解码函数
strTemp 需要解码的字符串
strCharset 字符集
%END REM
If strTemp <> "" Then
Dim ns As New NotesSession
Dim doc As NotesDocument
Set doc=ns.CurrentDatabase.CreateDocument()
doc.fldTemp = strTemp
Dim vrnTemp As Variant
'Msgbox
------解决方案--------------------
@URLDecode("
------解决方案--------------------
& strCharset &
------解决方案--------------------
";"
------解决方案--------------------
+ strTemp +
------解决方案--------------------
")
------解决方案--------------------
vrnTemp = Evaluate(
------解决方案--------------------
@URLEncode("
------解决方案--------------------