原地址:[url]http://www.birthome.cn/read.php?tid-1645.html[/url]
在BIRT目前的版本中,在viewer中到处文档或数据仅支持英文名。默认情况下,如果报表文档的文件名全部是英文字符,则导出的文档文件名跟报表设计文档的文件名相同,否则导出的文件名为BIRTReport。那么怎么才能导出中文名呢?
首先,需要在tomcat的server.xml配置文件中设置URIEncoding=“utf-8”,这样查看报表的链接才能正常的访问到该报表文档,否则会出错。
其次,下载org.eclipse.birt.report.viewer的源码(注意与使用的birt版本相匹配),找到DefaultFilenameGenerator.java中的makeFileName方法,找到以下代码
// char is from 0-127
if (c < 0x00 || c >= 0x80){ 。。。}
把省略的部分换成如下代码
try
{
baseName = new String(baseName.getBytes( Charset.defaultCharset( ) ),"iso-8859-1");
}
catch ( UnsupportedEncodingException e )
{
baseName = DEFAULT_FILENAME;
}
break;
编译后替换WEB-INF/lib/viewerservlet.jar中相应的类
最后,把想用中文名的报表设计文档重命名,同时改动相应的链接,这样在viewer中就能顺利导出中文文件了!
在BIRT目前的版本中,在viewer中到处文档或数据仅支持英文名。默认情况下,如果报表文档的文件名全部是英文字符,则导出的文档文件名跟报表设计文档的文件名相同,否则导出的文件名为BIRTReport。那么怎么才能导出中文名呢?
首先,需要在tomcat的server.xml配置文件中设置URIEncoding=“utf-8”,这样查看报表的链接才能正常的访问到该报表文档,否则会出错。
其次,下载org.eclipse.birt.report.viewer的源码(注意与使用的birt版本相匹配),找到DefaultFilenameGenerator.java中的makeFileName方法,找到以下代码
// char is from 0-127
if (c < 0x00 || c >= 0x80){ 。。。}
把省略的部分换成如下代码
try
{
baseName = new String(baseName.getBytes( Charset.defaultCharset( ) ),"iso-8859-1");
}
catch ( UnsupportedEncodingException e )
{
baseName = DEFAULT_FILENAME;
}
break;
编译后替换WEB-INF/lib/viewerservlet.jar中相应的类
最后,把想用中文名的报表设计文档重命名,同时改动相应的链接,这样在viewer中就能顺利导出中文文件了!