响应与请求中的中文数据乱码问题解决方法,GET请求方式 form表单的参数会将action添加的参数全部覆盖问题
文章目录
响应与请求中的中文数据乱码问题解决方法,GET请求方式 form表单的参数会将action添加的参数全部覆盖问题如何解决响应中的乱码问题如何解决请求中的乱码问题GET请求方式 form表单的参数会将action添加的参数全部覆盖问题
如何解决响应中的乱码问题
原因:tomcat服务器 默认用的编码 ISO-8859-1 浏览器没有这个码表 使用自己默认的码表 解码会乱码
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.write("一树梨花压海棠");
}
解决方法
设置服务器的码表
response.setCharacterEncoding("utf-8");
设置浏览器用utf-8
response.setHeader("Content-Type", "text/html;charset=UTF-8");
以上两行代码 可以综合合并
response.setContentType("text/html; charset=UTF-8");
测试代码
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.write("一树梨花压海棠");
}
运行结果
如何解决请求中的乱码问题
同上
request.setCharacterEncoding(当前项目的编码集)
注意:
本身对请求实体进行编码,针对于post编码。如果需要对get同时一起编码,需要在配置端口号的地方添加useBodyEncodingForURI="true"。
GET请求方式 form表单的参数会将action添加的参数全部覆盖问题
需要注意的是当用到form表单时,form表单的action后面如果跟了自己添加的参数,如果请求方式是get,表单的参数会将action添加的参数全部覆盖掉。
解决方式:
1)把get换成post
2)使用get的话,可以用隐藏域