Web报表页面如何传递中文参数
1、场景描述
在用报表开发工具FineReport设计的web报表中,给iframe设置src嵌入某个报表时,往往会给报表传递初始的参数值,例如:
<iframe id="reportFrame" width="900" height="400" src="/WebReport/ReportServer?reportlet=/report.cpt&参数1=参数值&参数2=参数值..."></iframe>
若参数名称、参数值甚至报表名称中包含中文或者特殊字符时,如果不进行编码转换,可能会出现一系列问题。比如下图:
今天我就来讲讲该如何如何传递中文参数。
2、使用cjkEncode对中文进行编码转换
使用cjkEncode对调用报表的路径或参数进行编码,报表获取到参数后会自动进行解码,保证不会出现乱码等一系列情况。
cjkEncode是FR内部封装好的编码方法,在js中使用cjkEncode有两种方式,该节我们举例介绍。
2.1加载finereport.js使用cjkEncode
cjkEncode方法在FineReport的JS库中已经预先提供了,用户可以在自己的网页中引入FineReport的JS库,就可以使用FR.cjkEncode对中日韩文字符进行编码,如下对调用报表的url进行cjkEncode:
1. <html>
2. <head>
3. <title>FineReport Demo</title>
4. <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
5. <script type="text/javascript" src="/WebReport/ReportServer?op=emb&resource=finereport.js"></script>
6. <script language="javascript">
7. function autoLoad(){
8. var addr = FR.cjkEncode("/WebReport/ReportServer?reportlet=/doc/Primary/Parameter/Parameter.cpt&地区=华东");
9. document.getElementById("reportFrame").src = addr;
10. }
11. window.onload = autoLoad;
12. </script>
13. </head>
14. <body>
15. <iframe id="reportFrame" width="900" height="400" ></iframe>
16. </body>
17. </html>
finereport.js使用的是jquery框架,若用户也使用了jquery,可能会造成冲突,这时建议不要引入finereport.js,而是将cjkEncode方法拷贝到页面中直接使用,详见下面的方法。
已完成示例请参照%FR_HOME%\WebReport|page_demo\parameter_ch.html
2.2直接调用cjkEncode
加载finereport.js再引用cjkEncode,一方面可能会引起js冲突,另一方面也加载了很多不必要的方法。
若用户只需要使用该方法,可以将cjkEncode实现的代码复制到网页中或者用户自己的js文件中,然后再引用cjkEncode。
1. <html>
2. <head>
3. <title>FineReport Demo</title>
4. <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
5. <script type="text/javascript">
6. //cjkEncode方法的实现代码,放在网页head中或者用户自己的js文件中
7. function cjkEncode(text) {
8. if (text == null) {
9. return "";
10. }
11. var newText = "";
12. for (var i = 0; i < text.length; i++) {
13. var code = text.charCodeAt (i);
14. if (code >= 128 || code == 91 || code == 93) { //91 is "[", 93 is "]".
15. newText += "[" + code.toString(16) + "]";
16. } else {
17. newText += text.charAt(i);
18. }
19. }
20. return newText;
21. }
Web报表页面如何传递中文参数的更多相关文章
- javascript通过url向jsp页面传递中文参数乱码解决方法
解决方法:在传递参数前将中文参数进行两次编码,jsp页面获取参数后对中文参数进行一次解码,中文参数就不会变为乱码了! 参考例子: <%@ page language="java&quo ...
- asp.net URL传递中文参数System.Web.HttpUtility.UrlEncode与Server.UrlEncode的区别
asp.net URL传递中文参数System.Web.HttpUtility.UrlEncode与Server.UrlEncode的区别(一) HttpUtility.UrlEncode 方法: 对 ...
- url 传递中文参数乱码问题的终极解决方法。
估计很多人在做web开发的时候,都会碰到过url传递中文参数,有时候会出现乱码的问题,但有些项目或者环境,又不会有问题.当遇到乱码的时候,上网找了很多解决方案,比如: 页面设置它的编码方式,改成utf ...
- ASP使用ajax来传递中文参数的编码处理
背景 asp的第一版是0.9测试版,自从1996年ASP1.0诞生,迄今20余载.虽然asp在Windows2000 IIS服务5.0所附带的ASP 3.0发布后好像再没有更新过了,但是由于其入手简单 ...
- (转) jsp页面 URL传中文参数到Action里面出现乱码
jsp页面 URL传中文参数到Action里面出现乱码,方法如下: 第一种:在Action中用 new String(str.getBytes("ISO8859_1"), &quo ...
- GET方法传递中文参数乱码解决办法
1.在页面中对你的URL进行编码 使用------encodeURI(你要使用的中文参数值)如:...?username"+encodeURI(“小甜甜") 2.在后台通过解码来接 ...
- js的url中传递中文参数乱码,如何获取url中参数问题
一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: <script type=”text/javascript ...
- JS中的的Url传递中文参数乱码,如何获取Url中参数问题
一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码:<script type=”text/javascript” ...
- Js的Url中传递中文参数乱码的解决
一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: 2. 接收参数页面:test02.html 二:如何获取Url& ...
随机推荐
- 设计模式——Spring IoC中用到的模板方法模式
基本概念 什么是模板方法(Template method):父类定义了骨架(调用哪些方法及顺序),某些特定方法由子类实现. 最大的好处:代码复用,减少重复代码.除了子类要实现的特定方法,其他方法及方法 ...
- Sending e-mail
E-mail functionality uses the Apache Commons Email library under the hood. You can use theplay.libs. ...
- Julius JS – 最流行的网页语音识别库
JuliusJS 是用于在网页中的语音识别库.这是 Julius(由日本京都大学和日本IPA联合开发的一个实用高效双通道的大词汇连续语音识别引擎)的 JavaScript 实现.它实时侦听用户的语音并 ...
- 值得 Web 开发人员收藏的20个 HTML5 实例教程
当开始学习如何创建 Web 应用程序或网站的时候,最流行的建议之一就是阅读教程,并付诸实践.也有大量的 Web 开发的书,但光有理论没有实际行动是无用的.现在由于网络的发展,我们有很多的工具可以用于创 ...
- myeclipse 2015 CI 16发布【附下载】
2015升级版再次来袭! 更新日志: Slack Integration 新版本集成了Slack,你只需要注册一个Slack帐号然后就可以发送和接收代码片段.你甚至不需要登录Slack就可以直接在Ec ...
- 首届Autodesk编程马拉松(Hackathon)开始报名啦 -- 6.14~15 上海
欢迎报名参加Autodesk 首届编程马拉松 ( Hackathon ) 活动 首届Autodesk编程马拉松(Hackathon)活动即将在Autodesk公司中国研究院(上海)举办.本次编程马 ...
- iOS自动化编译
最近研究了一下iOS的自动化编译,目的是为了简化测试和开发的同学沟通协调的次数,实现测试同学可以随时从网页操作编译SVN最新源码并打包ipa进行测试. 具体思路是通过从配置文件读取需要编译的项目配置列 ...
- CocoaPods常用终端命令及Profile文件简单介绍
Pod常用终端命令 pod init 创建pod文件 pod install 开始安装第三方框架,如果网上有更新,会安装最新的 pod install --verbose--no-repo-updat ...
- 【C语言】C语言函数
目录: 1. [函数注意点] 2. [函数目的] 3. [函数格式] 4. [函数定义前需明确的条件] 5. [函数的形参.实参] 6. [函数返回值注意点] 7. [为什么要return] 8. [ ...
- iOS开发200个tips总结(一)
tip 1 : 给UIImage添加毛玻璃效果 func blurImage(value:NSNumber) -> UIImage { let context = CIContext(opti ...