从jsp的input标签输入的中文,到Servlet中乱码

然后网上很多解决方法说设置3个地方
1、jsp页面需要设置

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page contentType = " text/html;charset=gb2312 " %>

2、Servlet中

 request.setCharacterEncoding("UTF-8");

3、Tomcat的server.xml中

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" 
               useBodyEncodingForURI="true" 
               IEncoding="utf-8" 
               URIEncoding="utf-8"/>

还是乱码/(ㄒoㄒ)/~~ 求救O(≧口≦)O

7个回答

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

u013942710
一只喵喵甤 我试了 还是不行额
大约 4 年之前 回复
u013942710
一只喵喵甤 realName = new String(request.getParameter("realName").getBytes("ISO-8859-1"),"UTF-8");不是用于get方法的吗?我是用post提交的,还是乱码
大约 4 年之前 回复

在Servlet里面转换一下就行了。

上面有个错了图片说明

qq_35849707
Z_路人 如果你使用的是mysql,可以试着将mysql配置为utf-8
接近 2 年之前 回复

使用post请求乱码
修改tomcat的配置文件server.xml:
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8" />
只需增加 URIEncoding="UTF-8" 这一句,然后重启tomcat即可。

u013942710
一只喵喵甤 修改过了,还是不行
大约 4 年之前 回复

啊啊啊啊啊啊啊啊啊啊啊啊啊,就一个很简单的例子,SOS~~好捉急

1、index.jsp写了个表单提交

 <form action="servlet/HelloServlet" method="post">
        <input name="command" type="text" value="查看"/>
        <input type="submit" value="Post"></input>
 </form>

2.servlet中获得参数然后跳转

 @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("Post()");
        PrintWriter out = response.getWriter();
        response.setContentType("text/html;charset=utf-8");
        out.println("<strong>Hi~~~</strong><br>");
        request.setCharacterEncoding("UTF-8");
        String str1 = request.getParameter("command");
// String str1 = new String(request.getParameter("command").getBytes("ISO-8859-1"),"UTF-8"); 这个也试过 还是不行
        System.out.print(str1);   //这里输出就已经是乱码
        request.setAttribute("str1",str1);
        request.getRequestDispatcher("/WEB-INF/content/index1.jsp").forward(request, response);
    }

3index1.jsp显示一下内容

 ${str1}
null_java
null_java 应该没有问题的,修改服务器编码可以解决post和get乱码,我的就是成功的,你把软件重启一下试试吧!
大约 4 年之前 回复

果然,自己好了,clear了一下后,重启了myeclipse,就好了
分享一下一篇有关乱码的总结 http://blog.csdn.net/longyuhome/article/details/7856270

= =还是不行,虽然从jsp-->servlet-->jsp显示的中文都是正常,但是在jsp-->servlet-->jsp的过程中servlet用System.out.print(str1); 输出的内容还是???,而且在servlet无法使用这个数据来干点嘛,- -因为它是乱码~~~怎么破~~~~

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问