• java web中乱码的种类和一些解决方式


    在java web课堂测试中遇到了一些乱码问题 ,从百度上找到了许多种解决方法和乱码的种类,在这里总结一下。

    一、文件出现乱码

    【右击文件】->【Properties】->【Resource】->【Text file encoding】

    一般jsp文件的编码是 UTF-8

    即:<%@ page language="java" pageEncoding="utf-8"%>

    二、浏览器和服务器间传输数据的乱码

    1、 浏览器端编码,由服务器端告诉浏览器如何解码数据:

    response.setContentType("text/html; charset=UTF-8");或response.setCharacterEncoding("UTF-8");

    这里是重新定向一下编码的类型

    2、浏览器和服务器间传输数据时的乱码

    服务器端编码,将客户端文本框传递的数据进行解码:默认使用ISO-8859-1进行编码数据,

    然后将数据传输到服务器,需要将浏览器传递过来的类型进行转换为我们需要的类型

    方法一:

    String username = request.getParameter("username");
    username = new String(username.getBytes("ISO-8859-1"), "UTF-8");
    

     方法二:

    // 必须在获取参数之前,调用如下方法先解码
    request.setCharacterEncoding("UTF-8");
    String username = request.getParameter("username");

    比较通用方案:在一个Filter中更改所有的编码方式:

    在src中添加filter来设置编码格式是中文,添加一个filter类

    然后在web.xml中配置filter类

    filter类

    public class CharFilter implements Filter{
    	String encoding = null;
    	@Override
    	public void init(FilterConfig filterConfig) throws ServletException {
    		encoding = filterConfig.getInitParameter("encoding");
    	}
    
    	
    
    	@Override
    	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    			throws IOException, ServletException {
    //			request.setCharacterEncoding("utf-8");
    			request.setCharacterEncoding(encoding);
    			chain.doFilter(request, response);
    	}
    
    	@Override
    	public void destroy() {
    		// TODO Auto-generated method stub
    		
    	}
    }
    

      web.xml

    <filter>
      	<filter-name>CharFilter</filter-name>
      	<filter-class>CharFilter所在包的地址</filter-class>
      	<init-param>
      		<param-name>encoding</param-name>
      		<param-value>UTF-8</param-value>
      	</init-param>
      </filter>
    

    这是我在这次测试中遇到的问题与总结。

    部分内容摘自百度。

    转载请注明出处。。

  • 相关阅读:
    图像增强:直方图均衡和小波变换【matlab】
    边缘检测算子和小波变换提取图像边缘【matlab】
    维纳滤波和编码曝光PSF去除运动模糊【matlab】
    编码曝光
    鱼眼镜头的distortion校正【matlab】
    Linux如何查看JDK的安装路径
    Linux启动vi编辑器时提示E325: ATTENTION解决方案
    Linux下useradd命令创建的用户不能登录的问题
    Linux系统下(x64)安装jdk 1.6(jdk-6u45-linux-x64.bin)
    根据wsdl文件,Web工程自动生成webservice客户端调用
  • 原文地址:https://www.cnblogs.com/liulala2017/p/7921827.html
Copyright © 2020-2023  润新知