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

  经常遇到下载中文名文件乱码的问题,现在来总结归纳一下几种常见的解决办法。


  一,最常见的方法,设置URIEncoding

    在tomcat->conf->server.xml中Connector节点中增加URIEncoding

<Connector port="8082" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />

   

二,增加启动配置的编码-Dfile.encoding

  linux环境下/bin/catalina.sh

#!/bin/sh
JAVA_OPTS="-Dfile.encoding=UTF-8"
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

另外,查看配置是否成功的办法

 tomcat启动后,使用ps命令查看运行着的tomcat进程描述中是否包含Dfile的配置。

ps -ef|grep tomcat

   出现如下面输出中的-Dfile.encoding=UTF-8即表示配置成功

root      7010     1  0 Apr19 ?        00:30:13 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start

       

三,设置下载文件名的编码(这是最重要的)

String downloadName = new String(downloadName.getBytes("gb2312"),"iso8859-1");


你可能感兴趣的:(java,乱码,下载文件,中文名)