Java和JSP中下载文件文件名中文乱码问题


我说,中国人在计算机方面永远也赶不上美国人,光中文乱码问题就能难为死一批程序员,我最近做的这个项目,已经难为我不下三次了。

关于乱码的问题,另外开博详细讨论,今天就说如何解决Java中的乱码问题。

在自己写的download这个servlet或者下载的jsp页面中,添加head信息时,加入这些代码

response.setContentType(“application/octet-stream”);

byte[] b=fileName.getBytes(“GBK”);
fileName=new String(b,“8859_1″);
response.setHeader(“Content-Disposition”,“attachment;filename=”+fileName);

有时候这样仍然不能保证下载到的文件是正确的,需要设置上传页面的代码格式,设置成utf-8测试成功,gbk没有试过,gb2312测试失败。charset=utf-8是最好的选择。设置完成后如果用的不是utf-8的编码格式会出现页面的乱码,这时候将这个文件另存(推荐使用EditPlus),选择编码格式为utf-8就可以了。

如果上传的文件是以文件名命名的话,那么仍然可能出现乱码,可以使用文件在数据库中的Id标示号来命名,测试下载通过。


版权信息:本文来自老杨个人网站,作者老杨原文地址,转载请注明出处。

如果喜欢本站,敬请订阅:老杨个人网站。谢谢惠顾!


分类: 信息技术
标签: , ,

前2排已经被占了我要占座

  1. 用UTF8统一江湖多好。。可是windows就。。。

    回复Ta

    是啊,可惜操作系统不是我们做的 :emotion547

    回复Ta

:emotion58 :emotion57 :emotion563 :emotion562 :emotion561 :emotion560 :emotion56 :emotion559 :emotion558 :emotion557 :emotion556 :emotion554 :emotion552 :emotion551 :emotion550 :emotion55 :emotion547 :emotion546 :emotion544 :emotion543 :emotion542 :emotion541 :emotion540 :emotion54 :emotion539 :emotion538 :emotion537 :emotion536 :emotion535 :emotion534 :emotion533 :emotion532 :emotion531 :emotion530 :emotion53 :emotion529 :emotion526 :emotion525 :emotion524 :emotion523 :emotion522 :emotion521 :emotion520 :emotion52 :emotion519 :emotion518 :emotion517 :emotion516 :emotion515 :emotion514 :emotion513 :emotion512 :emotion511 :emotion510 :emotion51 :emotion119 :emotion113