Java web 的乱码问题。。

我新学Java web 大多数情况下都会有乱码,后来老师说charset=UTF-8就是,但是在有些jsp代码中还是乱码,我有点不明白,我想知道大神在乱码当面是怎么解决的。 希望大神能分享一下

3个回答

• 向客户端输出中文数据
用OutputStream(字节流)发送数据:
public class ServletDemo6 extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            PrintWriter writer = response.getWriter();//得到一个字符输出流
            writer.write("你好");
            //这个相应到客户端
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            doGet(request, response);
    }

}

1、response.getOutputStream().write(“中国”.getBytes());//以默认编码发送数据
2、response.getOutputStream().write("中国".getBytes("UTF-8"));//以UTF-8编码发送数据,浏览器(默认用GB2312)会出现乱码
画图描述出现该问题的原因。
解决办法:
2.1通过更改浏览器的编码方式:IE/”查看”/”编码”/”UTF-8”(不可取)
2.2通过设置响应头告知客户端编码方式:response.setHeader(“Content-type”, “text/html;charset=UTF-8”);//告知浏览器数据类型及编码
2.3通过meta标签模拟请求头:out.write("".getBytes());
2.4通过以下方法:response.setContentType("text/html;charset=UTF-8");
总结:程序以什么编码输出,就需要告知客户端以什么编码显示。
小细节:输出字符“1”用response.getOutputStream().write(1);出现的问题?

用OutputStream(字节流)发送数据:
Servlet:
1、response.getOutputStream().write(“中国”.getBytes());//以默认编码发送数据
2、response.getOutputStream().write("中国".getBytes("UTF-8"));//以UTF-8编码发送数据,浏览器(默认用GB2312)会出现乱码
画图描述出现该问题的原因。
解决办法:
2.1通过更改浏览器的编码方式:IE/”查看”/”编码”/”UTF-8”(不可取)
2.2通过设置响应头告知客户端编码方式:response.setHeader(“Content-type”, “text/html;charset=UTF-8”);//告知浏览器数据类型及编码
2.3通过meta标签模拟请求头:out.write("".getBytes());
2.4通过以下方法:response.setContentType("text/html;charset=UTF-8");
总结:程序以什么编码输出,就需要告知客户端以什么编码显示。

小细节:输出字符“1”用response.getOutputStream().write(1);出现的问题?

到底是什么情况下出现的乱码,一般只要设置编码格式为utf-8就行了,这问题百度就能找到答案

代码的设置编码与数据库设置的编码要一致

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!