zoukankan      html  css  js  c++  java
  • Tomcat 改服务器编码(Java 修改字符串编码格式)

    对于客户端发来的汉字,我们一般需要转码:

    ------------------------------------------------------------------------------------

    request.setCharacterEncoding("UTF-8");//这样设置客户机发来数据文字格式只对post方式有效

    String line = request.getParameter("username");  

    System.out.println(line);

    -------------------------------------------------------------

    String line = request.getParameter("username");

    line=(new String(line.getBytes("iso8859-1"),"UTF-8"));//对于get方式,只能这样了。

    -------------------------------------------------------------------------------------

    有没有办法不用这么麻烦?有,配置Tomcat服务器的server.xml 中的connector

    先看一下API:http://localhost:8080/docs/config/http.html

    URIEncoding

    This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used.

    意思是如果不配置这个URIEncoding 那么采用默认的ISO-8859-1

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

    这样配置即可。

    还有一个方法:

    useBodyEncodingForURI

    This specifies if the encoding specified in contentType should be used for URI query parameters, instead of using the URIEncoding. This setting is present for compatibility with Tomcat 4.1.x, where the encoding specified in the contentType, or explicitly set using Request.setCharacterEncoding method was also used for the parameters from the URL. The default value is false.

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

    这样一改,那么:

    request.setCharacterEncoding("UTF-8");//这样设置客户机发来数据文字格式就不只对post方式有效了,对get方式也有效。

    Tomcat 的log乱码解决方式:

    catalina.bat 中找到这一句

    set LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%conflogging.properties"      在后边加上:-Dfile.encoding="UTF-8" 

  • 相关阅读:
    【CF446D】DZY Loves Games 高斯消元+矩阵乘法
    【CF542D】Superhero's Job 暴力
    【CF660E】Different Subsets For All Tuples 结论题
    【CF666C】Codeword 结论题+暴力
    【CF666E】Forensic Examination 广义后缀自动机+倍增+线段树合并
    【CF461E】Appleman and a Game 倍增floyd
    【CF471E】MUH and Lots and Lots of Segments 扫描线+并查集+线段树+set
    【CF480D】Parcels DP
    【CF497E】Subsequences Return 矩阵乘法
    SSAS 项目部署失败的问题
  • 原文地址:https://www.cnblogs.com/flying607/p/3451854.html
Copyright © 2011-2022 走看看