Web传递中文参数

编辑
文档创建者:文档助手1 (67727 )     浏览次数:15475次     编辑次数:16次     最近更新:susie 于 2019-04-09     

目录:

1. 问题描述编辑

给iframe设置src嵌入某个报表时,往往会给报表传递初始的参数值,例如:
<iframe id="reportFrame" width="900" height="400" src="/webroot/decision/view/report?viewlet=/report.cpt&参数1=参数值&参数2=参数值..."></iframe>
若参数名称、参数值甚至报表名称中包含中文或者特殊字符时,如果不进行编码转换,可能会出现一系列问题,如找不到模板文件等,如下。
222
那么如何实现带中文的报表正确传参呢?

2. 实现思路编辑

在给报表服务器发送请求之前,使用Javascript先对URL编码,然后再向服务器提交。避免了不同的操作系统、不同的浏览器、不同的网页字符集,导致完全不同的编码结果。因为Javascript的输出总是一致的,所以就保证了服务器得到的数据是格式统一的。
因此需要对URL中的中文,包含模板名、参数名字和参数值,进行encodeURIComponent或者encodeURI编码。详细点击编码转换

3. 实现方法编辑

完整代码如下:
<html> <head> <title>FineReport Demo</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script language="javascript"> function autoLoad(){ var addr = "/webroot/decision/view/report?viewlet=GettingStarted.cpt&"+encodeURIComponent("地区")+"="+encodeURIComponent("华东"); document.getElementById("reportFrame").src = addr; } window.onload = autoLoad; </script> </head> <body> <iframe id="reportFrame" width="900" height="400" ></iframe> </body> </html>

4.效果预览编辑

已完成示例请参照%FR_HOME%/webapps/webroot/help/page_demo/parameter_ch.html
启动设计器,输入http://localhost:8075/webroot/help/page_demo/parameter_ch.html,效果如下图:
222

注:不支持【UTF-8无BOM】的编码格式。

附件列表


主题: 部署集成
如果您认为本文档还有待完善,请编辑

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

此页面有帮助吗?只是浏览 [ 去社区提问 ]