超级链接到网页传递的中文乱码

目录:

1. 问题描述

在使用超级链接到网页传递参数时,若值中有中文,会出现乱码,如下图所示,那么如何传递让传递的中文值不出现乱码呢?

2. 实现思路

由于FR中的超级链接传递过来的参数被编码过了,所以在jsp页面中获取该参数时,需要通过java.net.URLDecoder.decode进行解码。

3. 示例

打开上一节中的模板%FR_HOME%\WebReport\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\超链传递网页参数.cpt
3.1 修改超级链接
在超级链接中增加一个参数,参数名为NAME,参数值为=B2,如下图:
已完成模板请参照%FR_HOME%\WebReport\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\超链到网页传递中文转码.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服务器,预览模板,点击超级链接,可以看到对应的中文正常显示了,如下图:
 

在线查看示例效果请点击超链到网页传递中文转码.cpt

附件列表


主题:
标签: 已验证

文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201