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

  • 文档创建者:印然
  • 编辑次数:9次
  • 最近更新:andrewkao882 于 2019-10-29
  • 1. 问题描述

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

    2. 实现思路

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

    3. 示例

    打开上一节中的模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\超链传递网页参数.cpt

    3.1 修改超级链接

    在超级链接中增加一个参数,参数名为 NAME,参数值为=B2,如下图:

    222

    已完成模板请参照%FR_HOME%\webapps\webroot\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="UTF-8"%>  
    <!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 服务器,预览模板,点击超级链接,可以看到对应的中文正常显示了,如下图:
    222

     

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


    附件列表


    主题: 典型应用
    • 有帮助
    • 没帮助
    • 只是浏览