下载中文文件乱码的问题一直困扰着我,倒不是没有办法解决这个问题,而是这些方法都不够完美,都有一些小问题。所有我说说现有的几种方法及其缺点:
1 将中文字符转化为iso-8859-1,无需编码,我看Hotmail就是这么做的。这个办法最简单,但是因为我的系统是多语言版本,很难准确地转换到iso-8859-1字符集。
2 使用URLEncoder.encode中文字符,字符集采用UTF-8。具体可以参考一篇文章《jspSmartUpload上传下载全攻略》所提出的解决方法http://tech.ccidnet.com/pub/article/c1112_a62023_p1.html。这个方法有一些小问题,一个是Mozilla不支持(这个倒是其次,不支持也罢),再一个就是中文字符如果过多(超过20个以上)IE下载会有问题。
3 使用Javamail的MimeUtility.encode方法来编码中文字符。这个方法是我最倾向使用的,毕竟是MIME标准。Mozilla是支持这个方法,但是IE又不支持(天杀的IE,连标准也不遵守)。
大家说说有没有什么好的方法可以解决下载中文文件出现的问题。
我的要求主要有两个:一个是IE运行没问题;二是必须支持Unicode(不单单是中文)。