servlet输出流乱码

丶灬走出姿态 提交于 2020-03-16 17:58:30

PrintWriter out = response.getWriter(); 

servlet输出流乱码解决思路:
如果你打算返回一个文本型的(text/*)页面,不论是HTML还是纯文本,通常都需要调用response.getWriter()方法。然而该方法必须在charset被设置之后调用,为什么呢?因为Writer必须知道如何将Java内部的Unicode字符转换成字节流。假如你选择了GBK,一个汉字将被输出成两个字节的编码;假如你选择了UTF-8,一个汉字将被输出成三个字节的编码。 
如果你打算返回一个二进制型的内容,例如:图片,那么你必须调用response.getOutputStream()方法。 
OutputStream out = response.getOutputStream(); 
需要注意的是,你只能在getWriter()和getOutputStream()中选择一个。

一旦其中一个方法被调用了,再调用其它一个方法时,系统会抛出异常。

        request.setCharacterEncoding("utf-8");

        response.setCharacterEncoding("utf-8");

        response.setContentType("text/html");

        PrintWriter out = response.getWriter();//必须在 response.setCharacterEncoding("utf-8")之后


        



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!