超级链接到网页传递的中文乱码
1. 问题描述
在使用超级链接到网页传递参数时,若值中有中文,会出现乱码,如下图所示,那么如何传递让传递的中文值不出现乱码呢?
2. 实现思路
由于FR中的超级链接传递过来的参数被编码过了,所以在jsp页面中获取该参数时,需要通过java.net.URLDecoder.decode进行解码。
3. 示例
打开上一节中的模板%FR_HOME%\WebReport\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\Hyperlink9.cpt
3.1 修改超级链接
在超级链接中增加一个参数,参数名为NAME,参数值为=B2,如下图:
已完成模板请参照%FR_HOME%\WebReport\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\Hyperlink10.cpt
3.2 网页修改
在获取参数中增加如下代码:
String NAME = java.net.URLDecoder.decode(request.getParameter("NAME"),"UTF-8"); //将NAME参数的值进行解码
注:若ID和TELEPHONE也有中文,也可以通过此方法进行反编码。
完整代码如下:
<%@ page language="java" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%
String ID = java.net.URLDecoder.decode(request.getParameter("ID"),"UTF-8");
String NAME =java.net.URLDecoder.decode(request.getParameter("NAME"),"UTF-8");
String TELEPHONE = java.net.URLDecoder.decode(request.getParameter("TELEPHONE"),"UTF-8");
%>
<html>
<head>
<title>修改基本参数</title>
</head>
<body>
<table width="350" border="0" cellspacing="1" cellpadding="5px">
<tr>
<th width="130">运货商编码:</th><td width="208"><input type="text" id="ID" value="<%=ID %>" disabled/></td>
</tr>
<tr>
<th>公司名称:</th><td><input type="text" id="NAME" value="<%=NAME %>"/></td>
</tr>
<tr>
<th>电话:</th><td><input type="text" id="TELEPHONE" value="<%=TELEPHONE %>"/></td>
</tr>
</table>
</body>
</html>
3.3 效果查看
启动tomcat服务器,预览模板,点击超级链接,可以看到对应的中文正常显示了,如下图:
在线查看示例效果请点击Hyperlink10.cpt
附件列表
主题: 专题总结
标签:
已验证