Code Bye

Java导出word文档不支持中文问题求助

如题,以下是导出代码:

File previewFile = new File(request.getSession()
.getServletContext()
.getRealPath(TRAGET_DOC));
InputStream is = new FileInputStream(filePath);
response.reset();
response.setContentType(“application/vnd.ms-word;charset=UTF-8″);
response.addHeader(“Content-Disposition”,
“attachment; filename=祝一切顺利.doc”);
byte[] b = new byte[1024];
int len;
while ((len = is.read(b)) > 0) {
response.getOutputStream().write(b, 0, len);
}
is.close();
response.getOutputStream().flush();
response.getOutputStream().close();

导出来之后如果设置的文件名为英文则没问题,如果是中文,那么文件名就变成.doc了,“祝一切顺利”这几个字就不见了,请各位大大帮忙给点解决办法,多谢多谢!

因为filename通过http传输的时候浏览器按照默认的编码方式,你用urlencode()(函数记不大清)重新编码
首先谢谢楼上的,我试了URLEncoder.encode(“测试.doc”,”UTF-8″);  但是也还是不是正文,而是被编码过的45%D4%5F%.doc这样子,请各位大大继续帮忙。。。

40分
URLEncoder.encode进行编码之后,还需要调用解码函数才能编译成正文的。
编码:URLEncoder.encode(String s, String enc)
使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式

解码:URLDecoder.decode(String s, String enc)
使用指定的编码机制对 application/x-www-form-urlencoded 字符串解码。

发送的时候使用URLEncoder.encode编码,接收的时候使用URLDecoder.decode解码,都按指定的编码格式进行编码、解码,可以保证不会出现乱码


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Java导出word文档不支持中文问题求助