java outputstream乱码_HttpServletResponse OutputStream中文乱码解决方法

java outputstream乱码_HttpServletResponse OutputStream中文乱码解决方法首页 gt JavaWeb gt SpringMvc 应用 gt HttpServletR 中文乱码解决方法 HttpServletR 使用 OutputStream 输出中文的时候 如果编码不设置就会产生乱码 产生乱码的原因有以下几种 1 Tomcat 服务器默认的编码为 ISO 8859 1 不支持中文

首页 > Java Web > SpringMvc应用 > HttpServletResponse

HttpServletResponse OutputStream中文乱码解决方法

HttpServletResponse使用OutputStream输出中文的时候,如果编码不设置就会产生乱码,产生乱码的原因有以下几种:

1. Tomcat服务器默认的编码为ISO-8859-1,不支持中文,应当告诉浏览器和服务器,使用UTF-8编码。

2. 服务端,浏览器端2边的编码不一致,比如服务器用utf-8,浏览器用gb2312,也会产生乱码。

解决方法:

public void outputChineseByOutputStream(HttpServletResponse response) throws IOException{

String data = “javaschool免费在线java教程”;

OutputStream outputStream = response.getOutputStream();//获取OutputStream输出流

response.setHeader(“content-type”, “text/html;charset=UTF-8”);//通过设置响应头控制浏览器以UTF-8的编码显示数据,如果不加这句话,那么浏览器显示的将是乱码

//getBytes()方法如果不带参数,那么就会根据操作系统的语言环境来选择转换码表,如果是中文操作系统,那么就使用GB2312的码表

byte[] dataByteArr = data.getBytes(“UTF-8”);//将字符转换成字节数组,指定以UTF-8编码进行转换

outputStream.write(dataByteArr);//使用OutputStream流向客户端输出字节数组

}

response.setHeader(“content-type”, “text/html;charset=UTF-8”) 通过设置响应头控制浏览器以UTF-8的编码显示数据

使用OutputStream流向客户端浏览器输出中文,以UTF-8的编码进行输出,此时就要控制客户端浏览器以UTF-8的编码打开,否则显示的时候就会出现中文乱码。

总结

1.如果中文返回出现??字符,这表明没有加HttpServletResponse.setCharacterEncoding(“UTF-8”);这句话。

2.如果返回的中文是“烇湫”这种乱码,说明浏览器的解析问题,应该检查下是否忘加response.setHeader(“Content-type”, “text/html;charset=UTF-8”);这句话。

3.如果还是有乱码,就指定html文件里内容的编码方式

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203272.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午10:12
下一篇 2026年3月19日 下午10:12


相关推荐

  • 阿里矢量图库使用

    阿里矢量图库使用官方网址 https www iconfont cn 先准备好 github 账号用来登录对想要的图标点击添加入库点击右上的小车 点击加入项目之后进入我的项目 点击生成代码在 Fontclass 选项卡中 会生成 css 网址 这个 css 文件可以直接在项目中引用 也可以下载后使用 点击复制代码可以获得相应字体图标的 class 完整 html 代码 DOCTYPE tml gt

    2026年3月20日
    2
  • 编译QCAD_qt 编译

    编译QCAD_qt 编译开源二维CAD程序QCAD的编译说明。

    2022年8月4日
    9
  • flex教程

    flex教程一 概述 Flex 语言包含了一个丰富的用户界面组件库 MXML 一种基于 XML 的标记语言 和 ActionScript 基于 ECMA262 的 强类型面向对象编程语言 MXML 用于排布用户界面和处理应用中其他方面的问题 而 ActionScript 用来处理用户交互逻辑 由于 Flash 平台的普及 Flex 使开发者可以开发广泛的应用程序 开发者可以使用工业标准 如 XML CSS 和 SVC 和他们所

    2026年3月20日
    2
  • 简述线性反馈移位寄存器

    简述线性反馈移位寄存器反馈移位寄存器移位寄存器是流密码产生密钥流的一个主要组成部分 GF 2 上一个 n 级反馈移位寄存器由 n 个二元存储器与一个反馈函数 f a1 a2 an 组成 如下图所示 在任意时刻 这些级的内容构成该反馈移位寄存器的状态 每一状态对应于 GF 2 上的一个 n 维向量 共有 2 的 n 次方种可能的状态 每一时刻的状态可用 n 维向量 a1 a2 an 表示 其中 ai 是第 i 级存储器的内容 反馈函数初始状

    2026年3月17日
    2
  • mysql中explain的type的解释

    mysql中explain的type的解释连接操作的类型 1 SYSTEMCONST 的特例 当表上只有一条元组匹配 2 CONSTWHERE 条件筛选后表上至多有一条元组匹配时 比如 WHEREID 2 ID 是主键 值为 2 的要么有一条要么没有 3 EQ REF 参与连接运算的表是内表 在代码实现的算法中 两表连接时作为循环中的内循环遍历的对象 这样的表称为内表

    2026年3月19日
    2
  • python中List类型与numpy.array类型的互相转换

    python中List类型与numpy.array类型的互相转换当然要先引入 numpy 包 importnumpya 转 numpy array temp np array list numpy array 转 List arr temp tolist 原来是打算使用这种转换直接编辑 OpenCV 中的 Mat 类 后来发现不用转换 可以直接将一个 Mat 类当做三维数组来提到其中的每一个像素 同时按照这种方式转换的类型 opencv 输出会是一张黑图

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号