Servlet request请求参数中文乱码问题 (get与post方式通用)

 get与post方式通用

package com.itheima.web;

import jdk.swing.interop.SwingInterOpUtils;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

@WebServlet("/req4")
public class request_demo4 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //解决乱码问题:pist底层post.getReader()输入流的方式来获取数据
        //request.setCharacterEncoding("UTF-8");//设置字符输入流的编码

        //post获取username
        String username = request.getParameter("username");
        System.out.println("解决乱码前:"+username);

        //get获取参数的方式 getQueryString 乱码原因:tomcat使用的是iso-8859-1字符集
        /*
        url编码
        1.将字符串按照编码方式转为二进制
        2.每个字节转为2个16进制数并在前面加上%
         */
        //1.先将乱码数据进行编码,转为字节数组
        byte[] bytes = username.getBytes(StandardCharsets.ISO_8859_1);
        //2.进行字节数组解码
        username = new String(bytes, StandardCharsets.UTF_8);
        System.out.println("解决乱码后:"+username);



    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

 


版权声明:本文为qq_51272114原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。