Servlet中文乱码的处理
2012-10-23 17:46
183 查看
Servlet中文输出问题的原理
浏览器接收到的中文字符并不是中文符号本身,而是它的某种字符集编码的数据。
浏览器必须使用正确的字符集编码进行查看,才能将它所接收到的数据显示为正确的中文字符。
当Servlet程序仅仅需要输出纯文本格式的响应正文时,通常应调用ServletResponse对象的getWriter方法返回一个PrintWriter对象,然后使用这个PrintWriter对象将文本内容写入到客户端。
Java程序中的字符文本在内存中是以unicode编码的形式存在的,PrintWriter对象在输出字符文本时,需要先将它们转换成其他某种字符集编码的字节数组后输出。
ServletResponse对象的getWriter方法返回的PrintWriter对象默认使用ISO8859-1字符集编码进行Unicode字符串到字节数组的转换,由于ISO8859-1字符集中根本就没有中文字符,Unicode编码的中文字符将被转换成无效的字符编码后输出给客户端。
Servlet中文输出问题的解决办法
ServletResponse接口中定义了setCharacterEncoding、setContentType等方法来指定ServletResponse.getWriter方法返回的PrintWriter对象所使用的字符集编码。
调用ServletResponse接口中定义的setContentType方法,在HTTP响应消息的Content-Type头字段中指定响应正文的字符集编码。
浏览器接收到的中文字符并不是中文符号本身,而是它的某种字符集编码的数据。
浏览器必须使用正确的字符集编码进行查看,才能将它所接收到的数据显示为正确的中文字符。
当Servlet程序仅仅需要输出纯文本格式的响应正文时,通常应调用ServletResponse对象的getWriter方法返回一个PrintWriter对象,然后使用这个PrintWriter对象将文本内容写入到客户端。
Java程序中的字符文本在内存中是以unicode编码的形式存在的,PrintWriter对象在输出字符文本时,需要先将它们转换成其他某种字符集编码的字节数组后输出。
ServletResponse对象的getWriter方法返回的PrintWriter对象默认使用ISO8859-1字符集编码进行Unicode字符串到字节数组的转换,由于ISO8859-1字符集中根本就没有中文字符,Unicode编码的中文字符将被转换成无效的字符编码后输出给客户端。
Servlet中文输出问题的解决办法
ServletResponse接口中定义了setCharacterEncoding、setContentType等方法来指定ServletResponse.getWriter方法返回的PrintWriter对象所使用的字符集编码。
调用ServletResponse接口中定义的setContentType方法,在HTTP响应消息的Content-Type头字段中指定响应正文的字符集编码。
相关文章推荐
- Servlet处理get请求时的中文乱码问题
- Servlet中文乱码处理小结
- JSP和Servlet的中文乱码处理
- JSP及Servlet中文乱码处理总结
- Servlet处理get请求时中文乱码问题
- Servlet学习笔记(中文乱码处理)
- Servlet 处理中文乱码
- Servlet+JSP+MySQL5.6模式下开发web应用出现的中文乱码处理
- Servlet 请求中文乱码高级处理
- JSP和Servlet的中文乱码处理
- Servlet中文乱码处理
- JSP与Servlet的中文乱码处理
- JSP,js,servlet之间传值时中文乱码的处理
- JSP中文乱码处理之Servlet接收参数中文乱码处理
- 使用filter(过滤器)处理JSP和servlet的中文乱码
- JavaWeb项目的中文乱码的原因以及Servlet中处理GET请求和POST请求编码过滤器
- 进行servlet开发及中文乱码处理 post与get
- JSP和Servlet的中文乱码处理
- JSP和Servlet的中文乱码处理
- Servlet开发GET和POST中文乱码处理(原创)