为了账号安全,请及时绑定邮箱和手机立即绑定

乱码问题?

怎么加了req.setCharacterEncoding("UTF-8");

断点看到的数据依然是乱码 老师求解


@SuppressWarnings("serial")
public class ListServlet extends HttpServlet{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        try {
            req.setCharacterEncoding("UTF-8");
            String command=req.getParameter("command");
            String description=req.getParameter("description");
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/micro_message","root","1234");
            StringBuilder sql=new StringBuilder("select ID,COMMAND,DESCRIPTION,CONTENT from MESSAGE where 1=1 ");
            List<String> paramList=new ArrayList<String>();
            
            if(null!=command&&!"".equals(command.trim())){
                sql.append("and COMMAND=?");
                paramList.add(command);
            }
            if(null!=description&&!"".equals(description.trim())){
                sql.append("and DESCRIPTION like '%' ? '%'");
                paramList.add(description);
            }
            PreparedStatement preparedStatement=conn.prepareStatement(sql.toString());
            for (int i=0;i<paramList.size();i++) {
                System.out.println(paramList.get(i));
                preparedStatement.setString(i+1, paramList.get(i));
            }

            ResultSet rs=preparedStatement.executeQuery();
            List<Message> messageList=new ArrayList<Message>();
            while(rs.next()){
                Message message=new Message();
                messageList.add(message);
                message.setId(rs.getString("ID"));
                message.setCommand(rs.getString("COMMAND"));
                message.setContent(rs.getString("CONTENT"));
                message.setDescription(rs.getString("DESCRIPTION"));
            }
            req.setAttribute("messageList", messageList);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        req.getRequestDispatcher("/WEB-INF/jsp/back/List.jsp").forward(req, resp);
    }
    
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        super.doGet(req, resp);
    }



==============================================

jsp页面代码



<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>内容列表页面</title>
        <link href="<%=basePath %>/resources/css/all.css" rel="stylesheet" type="text/css" />
    </head>
    <body style="background: #e1e9eb;">
        <form action="<%=basePath %>List.action" id="mainForm" method="get">
            <div class="right">
                <div class="current">当前位置:<a href="javascript:void(0)" style="color:#6E6E6E;">内容管理</a> &gt; 内容列表</div>
                <div class="rightCont">
                    <p class="g_title fix">内容列表 <a class="btn03" href="#">新 增</a>&nbsp;&nbsp;&nbsp;&nbsp;<a class="btn03" href="#">删 除</a></p>
                    <table class="tab1">
                        <tbody>
                            <tr>
                                <td width="90" align="right">指令名称:</td>
                                <td>
                                    <input name="command" type="text" class="allInput" value=""/>
                                </td>
                                <td width="90" align="right">描述:</td>
                                <td>
                                    <input name="description" type="text" class="allInput" value=""/>
                                </td>
                                <td width="85" align="right"><input type="submit" class="tabSub" value="查 询" /></td>
                               </tr>
                        </tbody>
                    </table>
                    <div class="zixun fix">
                        <table class="tab2" width="100%">
                            <tbody>
                                <tr>
                                    <th><input type="checkbox" id="all" onclick="#"/></th>
                                    <th>序号</th>
                                    <th>指令名称</th>
                                    <th>描述</th>
                                    <th>操作</th>
                                </tr>
                                <c:forEach  items="${messageList }" var="message" varStatus="status">
                                
                                  <tr <c:if test="${status.index%2!=0 }">style='background-color:#ECF6EE;'</c:if> >
                                    <td><input type="checkbox" /></td>
                                    <td>${status.index+1}</td>
                                    <td>${message.command }</td>
                                    <td>${message.description }</td>
                                    <td>
                                        <a href="#">修改</a>&nbsp;&nbsp;&nbsp;
                                        <a href="#">删除</a>
                                    </td>
                                  </tr>
                                </c:forEach>

                                
                            </tbody>
                        </table>
                        <div class='page fix'>
                            共 <b>4</b> 条
                            <a href='###' class='first'>首页</a>
                            <a href='###' class='pre'>上一页</a>
                            当前第<span>1/1</span>页
                            <a href='###' class='next'>下一页</a>
                            <a href='###' class='last'>末页</a>
                            跳至&nbsp;<input type='text' value='1' class='allInput w28' />&nbsp;页&nbsp;
                            <a href='###' class='go'>GO</a>
                        </div>
                    </div>
                </div>
            </div>
        </form>
    </body>
</html>

正在回答

2 回答

你的表单使用的get方式传递参数的,get是把参数放到URL路径后面提交参数的,解决方法:

修改tomcat的conf目录下的server.xml文件中的Connector标签,末尾加入 URIEncoding="utg-8";

如果还是不行的话,你试着把表单提交方式改为method="post",试一下;

如果还是不行的话,项目--右键-属性-资源-文本编码方式--UTF-8;



0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
通过自动回复机器人学Mybatis---基础版
  • 参与学习       107417    人
  • 解答问题       786    个

微信公众号自动回复功能学习Mybatis,基础教程加案例实战方式学习

进入课程

乱码问题?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信