统计报表软件FineReport7.1.1
大小:148.2M 适用平台:windows/linux
javascript中FineReport字符转换原理在给报表服务器发送请求之前,对URL或者只对URL里面的参数名字和参数值,进行cjkEncode的编码。源码如下:function cjkEncode(text) { if (text == null) { return ''; } var newText = ''; for (var i = 0; i < text.length; i++) { var code = text.charCodeAt (i); if (code >= 128 || code == 91 || code == 93) {//91 is '[', 93 is ']'. newText += '[' + code.toString(16) + ']'; } else { newText += text.charAt(i); } } return newText; } 经过编码的URL或者Form表单,报表服务器智能的将这些字符正确的转换过来。cjkEncode方法在FineReport的JS库中已经预先提供了,用户只要加载了FR的JS库,就可以使用FR.cjkEncode对中日韩文字符进行encode,如下示例:
对URL进行cjkEncode
如果只对参数值进行编辑转换,在参数后面调用FR.cjkEncode()方法,如:window.location='http://localhost:8075/WebReport/ReportServer?reportlet=reportname.cpt¶name='+FR.cjkEncode('华东');
特殊符号处理如果在需要进行cjkEncode的URI的参数中包含特殊字符,比如%,#,$,=,&,/,?,+,@等字符时,需要在cjkEncode之后,再次调用javascript的encodeURIComponent对这些特殊字符进行编码。如参数值是”%华%“这样的字符,就需要写成encodeURIComponent(FR.cjkEncode('%华%')),一定要先进行cjkEncode,然后再进行encodeURIComponent,完整代码如下: