模板名有中文找不到模板

编辑
文档创建者:文档助手1 (67727 )     浏览次数:1887次     编辑次数:7次     最近更新:susie 于 2017-08-23     

目录:

1. 问题描述编辑

当预览某张报表(报表模板名称命名为中文)时,在浏览器中直接输入url访问该报表时可能会出现报错,但是从设计器中直接点击分页预览等,却不会出现问题。
比如在URL中输入访问某张报表,如http://localhost:8075/WebReport/ReportServer?reportlet=参数.cpt ,就会报如下错误信息:
222

2. 问题原因编辑

因为每个浏览器的编码是不一样的,所以要通过设置服务器端的url编码,来实现服务器的编码和浏览器的编码一致。

为什么中文模板,在设计器中点击分页预览时,可以预览模板,不会出现如上的问题。
原因是设计器中的分页预览那边是FR的设计器封装的代码中通过cjkEncode方式解析处理了中文,你会看到设计器中访问的中文命名的模板(参数.cpt)变为[53c2][6570].cpt,即已经处理其中的中文名称,正常预览模板的效果,如下:
222

3. 解决方案编辑

3.1 建议使用英文模板名称
可以把模板名改为英文
3.2 修改服务器编码
修改web服务器下面的server.xml配置文件,在Connector属性里面添加:URIEncoding="UTF-8" 或URIEncoding="GB2312",其中GB2312对应IE和火狐浏览器,utf-8对应谷歌浏览器,设置完就可以直接通过URL输入访问中文名的模板和传递中文参数。
这里以tomcat为例:
在tomcat的/conf/server.xml文件中,找到以下这一行:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
这行的意思也就是使用8080端口来接收html的请求。在这里可以加几个参数来配置不同的效果。
URIEncoding="UTF-8" 设置url传输时对url内容的编码格式
compression="on" 打开压缩功能 
compressionMinSize="2048" 启用压缩的输出内容大小,这里面默认为2KB
noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩 
compressableMimeType="text/html,text/xml" 压缩类型
对于要解决中文乱码来说,添加URIEncoding="UTF-8"即可,如下:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
成功后重启tomcat服务器,通过url访问中文模板就可以成功访问到了。其它的服务器的解决方案类似,只要在对应的地方加上url编码。
222

3.3 使用cjkEncode处理
使用FR.cjkEncode("中文名称")方式进行转换就可以解决,具体可参考编码转换章节内容。

注:用户集成到自己的系统后,都是讲报表嵌入在系统页面中的,而不是直接在浏览器栏输入,以上情况只发生在未集成测试之时。 

附件列表


主题: 专题总结
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

本文档是否有用?
谢谢! 我们非常感谢您的反馈。
提交反馈: