通过http报头解决中文问题

来源:互联网 发布:服务器防火墙端口设置 编辑:程序博客网 时间:2024/05/22 15:28

在servlet运行的时候,它会采用默认的“iso-8859-1"的编码获取输出流,并使用这个输出流向客户端输出数据,但我们汉字的编码是”GBK",

在servlet中,可以修改“Content-Type"这个报头完成,也就是在获取输出流之前,利用setContentType()这个方法去设置这个报头

eg: response.setContentType("text/html;charset=GBK");  

通过设置”ContentType"可以解决向客户端输出中文的问题,但从客户端输出的中文是冲表单取出来的,还是会出现乱码问题,servlet读取表单数据的时候用的也是“iso-8859-1"

编码,所以这个时候读出来的数据就已经是乱码了,如果将这个读取出来的数据向客户端输出,即使设置了”Content-Type",也无济于事、此事需要将servlet读取表单数据的编码方式设置成"GBK",这个任务可以有HttpServletRequest上的setCharacterEncoding(“GBK”)方法来完成,