小-鸟 2017-03-06 15:39 采纳率: 100%
浏览 968
已采纳

Java web 的乱码问题。。

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

  • 写回答

3条回答 默认 最新

  • JonyShan 2017-03-06 15:49
    关注

    • 向客户端输出中文数据
    用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);出现的问题?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作