主要是URL里面包含非英文字符.
一般url.openConnection的时候如果tomcat启动的时候不指定字符集, 会默认使用系统字符集.
所以如果服务器的系统字符集不是UTF8很有可能发生乱码的情况.
所以在启动tomcat的时候需要加如下的参数.
catalina.sh文件最上方加如下脚本
JAVA_OPTS=" \
-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails \
-Xms1024m -Xmx1024m -Dfile.encoding=utf-8 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote"
关键是-Dfile.encoding=utf-8部分.