Tomcat 编码完美处理方式

   UserServlet.java      

                request.setCharacterEncoding("UTF-8");

Enumeration<String> ea = request.getParameterNames();
response.setContentType("text/plain;charset=UTF-8;pageEncoding=UTF-8"); //注意顺序 先设置编码 后获取out 
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
while (ea.hasMoreElements()) {
String name=ea.nextElement();
String value=request.getParameter(name);
logger.info("name:"+name+" value:"+value); 
out.println("name:"+name+" value:"+value);
}
out.flush();

out.close();

c3p0.prperties

jdbc:mysql://localhost:3306/huoying?useUnicode=true&amp;characterEncoding=utf8&mysqlEncoding=utf8


server.xml

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


catalina.bat

set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Dfile.encoding=UTF8
if not "%LOGGING_MANAGER%" == "" goto noJuliManager
set LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
:noJuliManager
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER% -Dfile.encoding=UTF8


/etc/my.cnf

[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
#character_set_server=utf8
init_connect='SET NAMES utf8'
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
skip-name-resolve
max_connections=2000
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


cnetos 将 startup.sh 中 最后一行 start 改为run 就可以看见控制台输出了。.bat也是这样做的。



MAC下控制台启动tomcat中文乱码解决


修改tomcat/bin/catclina.sh 

Java代码   收藏代码
  1. if [ -z "$LOGGING_MANAGER" ]; then  
  2.   JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dfile.encoding=UTF-8"  
  3. else   
  4.   JAVA_OPTS="$JAVA_OPTS $LOGGING_MANAGER -Dfile.encoding=UTF-8"  
  5. fi  
  6.   
  7. # ----- Execute The Requested Command -----------------------------------------  

找到Execute The Requested Command 这行,修改上面的JAVA_OPTS设值,添加-Dfile.encoding=UTF-8

你可能感兴趣的:(Tomcat 编码完美处理方式)