报表输出时URL中包含中文参数的处理方法

针对URL中传输中文问题,UniEAP Report中内置了解决方案:

报表引擎中提供的JS文件/unieap/pages/report/js/encode.js可以对中文进行base64编码,中文URL通过base64编码后提交到服务器,服务器再对中文进行base64解码,即可得到对应的中文。

使用详细方法如下:

1.Jsp页面引入encode.js文件;

<script src="/path/encode.js"></script>

2.使用JavaScript提供的函数将参数进行base64编码;

var myParam = ‘中文字符’;
myParam = encodeto64(myParam);

【注意】编码时仅需要对参数值进行编码,不需要对整个URL编码;如果有多个参数,必须全部编码,在一个URL中不能出现部分参数编码部分参数未编码的情况。

3.将编码后的参数拼接入URL中,并加入已编码参数encode=true通知后台参数已经编码,需要后台进行解码。URL形如:

var url =  ‘http://localhost:8080/applicationName/Report-ResultAction.do?reportId=d4fbb31e-97ee-41aa-9bf0-4be1be014fda&newReport=true&encode=true&morderid=’ + myParam;

得到的url变量的值可以赋给某个form的action属性用于实现页面跳转,或者复制到浏览器的地址栏中直接访问报表。

【注意】在一些项目中,由于中文编码方式不同,为了防止解码乱码,还需要传递字符集参数paramCharset=GBK

results matching ""

    No results matching ""

    results matching ""

      No results matching ""