前不久使用JXL导出Excel,再此就不赘述如何导出Excel了,在导出文件测试的时候在自己电脑上导出正常,在其他同事电脑上导出也正常(测试环境:WPS/Office2007/Office2010),然而总是有个别同事导出后乱码的情况。并且使用的Office版本也是之前在其他同事电脑上相同的Office版本。
经过分析,在导出的两个文件中,有一个文件的导出形式是通过Action的形式导出来的,另一个是通过在JSP页面写源代码的形式导出的,而前者在各个电脑上导出均正常,而后者使用JSP导出的在部分机器上出现了乱码问题,看了下别人导出文件时的步骤,发现缺少了response.reset()来清空输出流,可是在Action并没有加上这句话也可以正常导出,唯独以JSP导出的时候出现了这个问题,自己也在私下想了为什么JSP导出文件的时候需要加上response.reset()才能避免出现乱码的情况。如果碰到同样问题的同行们也可以尝试一下这种解决方案。
response.reset():用来清除首部的空白行
空白行的出现原因,jsp代码编译后产生。就是有jsp生成html文件的时候,html文件
内部会出现很多空白行。
下载后的文件内的空白行也是这样产生的。
因此,需要 response.reset() 来清除首部的空白行
这是我查资料的时候看到的,跟我解决乱码问题不知道有什么关系没。