java exception 乱码_java几种乱码问题解决方法

03deb8eeff57d444923ad44912cc236e.png

几种java乱码情况解决方法:

1、在Servlet中获得通过get方式传递到服务器的数据时出现乱码;public class RegistServlet extends HttpServlet{

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

String name = req.getParameter("userName");

byte[] bytes = name.getBytes("ISO8859-1");

String newName = new String(bytes,"UTF-8");

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

doGet(req, resp);

}

}

解析:在doGet方法中定义一个name变量获得封装在服务器的客户端数据userName,然后将name以“ISO8859-1”的方式赋值给字节数组bytes,最后将此bytes数组以UTF-8的方式赋值给一个新创建的String变量newName,此时newName就是能正常显示的数据,之所以这么麻烦,是因为没有直接的办法一行代码解决,可以就当此方法为固定用法。

2、在Servlet中获得通过post方式传递到服务器的数据时出现乱码;public class RegistServlet extends HttpServlet{

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

//注意:post方式提交数据的乱码解决方式,放在getParameXXX方法之前

req.setCharacterEncoding("UTF-8");

//得到前台input框中name="username"和password="password"的value值

String username = req.getParameter("username");

String password = req.getParameter("password");

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

doGet(req, resp);

}

}

解析:post传递方式下解决乱码问题很简单,就req.setCharacterEncoding(“UTF-8”); 这一行代码,但需注意,要将这句话放在获取数据之前。

3、Servlet通过服务器将数据响应到客户端时出现乱码;public class RegistServlet extends HttpServlet{

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

//方式一:

resp.setContentType("text/html;charset=utf-8");

//方式二:

resp.setHeader("Content-type", "text/html");

resp.setCharacterEncoding("UTF-8");

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

doGet(req, resp);

}

}

解析:注意,以上两种方法在应用时要写在输出方法之前,另外,两种方式效果一样,因为方式一较简洁,常用方式一。

4、HTML或JSP页面在客户端展示时出现的乱码情况。

form表单

更多java知识请关注java基础教程栏目。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值