当前位置: 代码迷 >> Lotus >> 在代理中通过lotusscript进行页面跳转时,中文参数的有关问题
  详细解决方案

在代理中通过lotusscript进行页面跳转时,中文参数的有关问题

热度:176   发布时间:2016-05-05 06:49:44.0
在代理中通过lotusscript进行页面跳转时,中文参数的问题
在代理中通过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("
------解决方案--------------------