【JavaWeb】中文乱码ISO-8859-1转utf-8

一、post方法html

@WebServlet("/charset/process")
public class CharsetServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //request.setCharacterEncoding用于将请求体(get方法无请求体不可用)中request字符集转换,且需位于post第一行
        request.setCharacterEncoding("UTF-8");

        /*
        * getParameter是获取从服务器中表单form中提交的数据,且默认是String类型
        * getAttribute是与setAttribute对应的方法,解决请求不能传递数据的问题,因此更开放,只要是Object便可
        * javaWeb设置这两个不一样的方法感受很繁琐,莫非是用于区分服务器端和浏览器请求端
        * */
        String name = request.getParameter("ename");
        String address = request.getParameter("address");
        //name.getBytes(原字符集名)  经过new String(原字节数组,新字符集)改变字符集
//        String utf8name =new String(name.getBytes("iso-8859-1"),"utf-8");
//        String utf8address =new String(address.getBytes("iso-8859-1"),"utf-8");

        response.setContentType("text/html;charset=utf-8");
        response.getWriter().println(name +" : "+address);
    }

二、get方法
Tomcat8 以及之后不用设置,其他版本在配置文件修改
在这里插入图片描述java