zoukankan      html  css  js  c++  java
  • Get,Post请求中文乱码问题有效解决方法

    对于做Java WEB项目同学来说,中文乱码问题是一个经常遇到而又非常头痛的问题,而最容易出现乱码的环节就是在浏览器向服务器发送请求的过程,至于出现乱码的原因不是本文的关注的重点,想了解的朋友可以参考
    http://www.cnblogs.com/jym-sunshine/p/4885993.html
    本文主要介绍如何有效解决web请求中的乱码问题,其实解决方法有很多种,不同的请求类型解决方法也不相同。
    本文只介绍最方便的一种:
    1、针对Post方式提交的请求如果出现乱码,可以每次在request解析数据时设置编码格式:
    request.setCharacterEncoding("utf-8");
    也可以使用编码过滤器来解决,最常用的方法是使用Spring提供的编码过滤器:
    在Web.xml中增加如下配置(要注意的是它的位置一定要是第一个执行的过滤器):
    <filter>
    <filter-name>charsetFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
    <param-name>forceEncoding</param-name>
    <param-value>true</param-value>
    </init-param>
    </filter>
    该过滤器要做的其实就是强制为所有请求和响应设置编码格式:
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    2、针对Get方式的乱码问题,由于参数是通过URL传递的,所以上面通过request设置的编码格式是不起作用的,此时可以在每次发生请求之前对URL进行编码:例如:Location.href="/encodeURI"("http://localhost/test/s?name=中文&sex=女");
    当然也有更简便的方法,那就是在服务器端配置URL编码格式:
    修改tomcat的配置文件server.xml:
                 <Connector URIEncoding="UTF-8" 
                     port="8080"   maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   connectionTimeout="20000" disableUploadTimeout="true" />
    只需增加 URIEncoding="UTF-8"  这一句,然后重启tomcat即可。
    相信通过这两段配置,你再也不用担心遇到乱码啦,当然数据库还有可能出现乱码,那将是另一篇文章的事啦!
  • 相关阅读:
    day29
    day28
    day27
    查询区间内有多少个不同的数(线段树/树状数组)
    树状数组变形:带区间修改的树状数组
    特征提取:PCA主成分分析法和NMF非负矩阵分解法
    Trie树
    Logistic&Softmax回归
    高斯贝叶斯分类器(GNB实战)
    朴素贝叶斯分类器(伯努利贝叶斯+高斯贝叶斯+多项式贝叶斯)
  • 原文地址:https://www.cnblogs.com/jym-sunshine/p/4886026.html
Copyright © 2011-2022 走看看