Servlet(六)中文乱码问题

出现中文乱码的原因:

浏览器(请求) 与 服务器(默认编码是iso-8859-1,服务器处理和响应返回)  之间的编码格式不一致

(1)post

request.setCharacterEncoding("utf-8");

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

(2)get

String username=new String(request.getParameter("username").getBytes("ios-8859-1"),"utf-8");

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

(3)sendRedirect();

只是多了个重定向,数据传递

浏览器(请求) -----> 服务器(服务器重定向响应) ------>  浏览器 (重定向请求)------> 服务器 (响应返回)

只需对每次http请求响应都做get或post处理即可

特殊:1、ie6一下版本对奇数数据量可能仍然产生中文乱码

2、实现浏览器下载文件带中文文件名时也可能出现乱码

解决:此时需要使用urlencode对数据变量做url编码

时间: 2024-12-28 18:24:55

Servlet(六)中文乱码问题的相关文章

JSP和Servlet的中文乱码处理

JSP和Servlet的中文乱码处理 前几天学习了JSP和Servlet中有关中文乱码的一些问题,写成了博客,今天进行更新一下.应该是可以解决日常的乱码问题了.现在作以下总结希望对需要的人有所帮助.我也是刚学,所以有不足之处希望谅解. 一.表单提交时出现乱码: 在进行表单提交的时候,经常提交一些中文,自然就避免不了出现中文乱码的情况,对于表单来说有两种提交方式:get和post提交方式.所以请求的时候便有get请求和post请求.以前我一直以为get请求和post请求方式出现的乱码的解决方式是一

servlet中中文乱码问题

在web项目中经常回碰到中文乱码的问题,特此整理一下,有不足的地方,希望大家纠正. 1从前台往后台传数据,.以get方式发送请求,发送的参数不乱,但是后台接收到参数乱码 在Tomcat的server.xml文件中设置URIEncoding属性值为UTF-8%CATALINA_HOME%\conf\server.xml <Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000

处理servlet中中文乱码问题

平时coding时,经常遇到一些乱码问题,现在总结一下在使用Servlet时遇到的一些乱码问题,简单的解决办法两种 第一种简单处理方式 在servlet中数据的处理是通过request和response进行处理的,提交数据有两种方式:post+get ①post提交方式--只要事先设置request.setCharacterEncoding("UTF-8");-------注:只对POS提交有效 ②get提交方式--通过ISO8859-1得到客户端发送的数据,再转成UTF-8类型.(或

Java Web -- Servlet(10) 中文乱码处理专题

一.产生乱码的原因: 当浏览器通过http协议访问web服务器时,假设此时浏览器的编码是utf-8,当把请求发给web服务器时,web服务器却以ISO-8859-1编码接收,所以就产生了乱码. //设置web服务器接收时,以utf-8形式接收,如下: request.setCharacterEncoding("utf-8"); //编码方式设置和浏览器一样(还有常见的gbk.gb2312) //设置浏览器显示时,以utf-8显示. response.setContentType(&qu

Servlet 知识点 中文乱码的本质与解决

本质原因:在servlet中出现中文乱码的原因编码和解码采用的不是一个编码表或者两个编码表不是兼容 例如UTF-8编码.GBK编码都可以读取中文,那么如果采用UTF-8编码保存文件,但是采用GBK编码读取文件就会造成乱码,因此UTF-8编码保存的文件应该使用UTF-8编码读取: 除了上述的utf-8,gbk之外字符编码表,还有ANSI 编码.GB2312编码等常用的编码表. 乱问题的解决: 原文地址:https://www.cnblogs.com/cplinux/p/9738050.html

servlet输出中文乱码

如果请求回应的中文乱码,去tomcat安装目录config文件夹下的server.xml,把connector标签添加个属性UIREncoding="utf-8",如果还是乱码,用System.out.println()测试接收的字符是否乱码,若正常,则在doPost()或doGet()方法里,在 PrintWriter out = response.getWriter(); 前添加 response.setCharacterEncoding("utf-8"); r

Servlet处理中文乱码问题(请求/响应)

乱码原因 传输方和接收方采用的编码不一致.传输方对参数采用的是UTF-8编码而接收方却用GBK进行解析,当然是乱码. Tomcat服务器默认采用的ISO8859-1编码得到参数值.虽然①中采用了同样的编码方式,但经过tomcat一处理,也会出现乱码(GET方式)  1.请求中文乱码的处理: --post request.setCharacterEncoding("UTF-8"); --get String name = new String(“中国”.getBytes(“iso-885

Java中Servlet输出中文乱码问题

1.现象:字节流向浏览器输出中文,可能会乱码(IE低版本) private void byteMethod(HttpServletResponse response) throws IOException, UnsupportedEncodingException { String date = "你好"; ServletOutputStream outputStream = response.getOutputStream(); outputStream.write(date.get

处理Servlet响应中文乱码

首先,response返回有两种,一种是字节流outputstream,一种是字符流printwrite. 申明:这里为了方便起见,所有输出都统一用UTF-8编码. 先说字节流,要输出"中国",给输出流的必须是转换为utf-8的"中国",还要告诉浏览器,用utf8来解析数据 [html] view plain copy //这句话的意思,是让浏览器用utf8来解析返回的数据 response.setHeader("Content-type", &