zoukankan      html  css  js  c++  java
  • 关于 jsp java servlet 中文汉字乱码的解决方法

    在servlet类中的get,post最前面加上

    req.setCharacterEncoding("UTF-8");
    resp.setCharacterEncoding("UTF-8");

    对接收到的汉字字符串转码

            String name = req.getParameter("name");
            String deptName = req.getParameter("deptName");
            name = new String(name.getBytes("ISO-8859-1"), "UTF-8");
            deptName = new String(deptName.getBytes("ISO-8859-1"), "UTF-8");

    完整样例:

    package servlet;
    
    import Dao.DeptDao;
    import Dao.EmpDao;
    import entity.Emp;
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.io.UnsupportedEncodingException;
    
    public class EmpServlet extends HttpServlet{
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String action = req.getParameter("action");
            req.setCharacterEncoding("UTF-8");
            resp.setCharacterEncoding("UTF-8");
            if("listEmp".equals(action)){
                listEmp(req,resp);
            }
        }
    
        private void listEmp(HttpServletRequest req, HttpServletResponse resp){
            JSONArray result = EmpDao.listEmp();
            PrintWriter pw = null;
            try {
                pw = resp.getWriter();
                pw.println(result);
                pw.flush();
                pw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String action = req.getParameter("action");
            req.setCharacterEncoding("UTF-8");
            resp.setCharacterEncoding("UTF-8");
            if("addEmp".equals(action)){
                try {
                    addEmp(req,resp);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }
    
        private void addEmp(HttpServletRequest req, HttpServletResponse resp) throws JSONException, UnsupportedEncodingException {
            String name = req.getParameter("name");
            String deptName = req.getParameter("deptName");
            name = new String(name.getBytes("ISO-8859-1"), "UTF-8");
            deptName = new String(deptName.getBytes("ISO-8859-1"), "UTF-8");
    
            int deptId = DeptDao.reConvert(deptName);
            JSONObject result = EmpDao.addEmp(name,deptId);
            try {
                PrintWriter pw = resp.getWriter();
                pw.println(result);
                pw.flush();
                pw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    
  • 相关阅读:
    PHP form 表单传参明细研究
    php返回数据库查询时出现Resource id #2
    AJAX避免服务器调用上个页面缓存的办法
    错误提示sudo: no tty present and no askpass program specified Sorry, try again.
    lua创建文件和文件夹
    ngx.lua中遇到的小问题2
    [Puzzle] 蚂蚁路线碰撞问题
    [问题记录] 操作符连写
    [工具] XMind
    Qt Creator快捷键
  • 原文地址:https://www.cnblogs.com/zhangjiuding/p/8039875.html
Copyright © 2011-2022 走看看