HttpServletResponse输出乱码的问题

HttpServletResponse的字节流:response.getOutputStream().write()

中文乱码解决:

//通过Content-Type响应头,通知浏览器以何种编码格式打开内容
response.setHeader("Content-Type", "text/html;charset=UTF-8");
String data = "中国";
OutputStream out = response.getOutputStream();
//前后格式要统一,getBytes()不指定编码格式时使用平台默认编码格式
out.write(data.getBytes("UTF-8"));

可以回写<meta>标签来控制浏览器解析行为

String data = "中国";
OutputStream out = response.getOutputStream();

String meta = "<meta http-equiv=‘content-type‘ content=‘text/html;charset=UTF-8‘ />":
out.write(meta.getBtyes());
out.write(data.getBytes("UTF-8"));

数字乱码:

//通过Content-Type响应头,指定响应内容格式及所采用的编码格式
response.setHeader("Content-Type", "text/html;charset=UTF-8");
String data = "中国";
OutputStream out = response.getOutputStream();
//输出数字:要先把数字转为字符串再getBytes(),否则浏览器会将原数字按指定码表解析出其它内容,而不会输出原数字
out.write((3 + "").getBtyes());

HttpServletResponse的字符流:response.getWriter().write()

//指定响应以UTF-8格式编码内容
response.setCharacterEncoding("UTF-8");
//通知浏览器以何种编码格式打开内容
response.setHeader("Content-Type", "text/html;charset=UTF-8");
//或response.setContentType("text/html;charset=UTF-8");
String data = "中国";
OutputStream out = response.getWriter();
out.write(data);
//response.setContentType("text/html;charset=UTF-8")
//效果等价于setCharacterEncoding("UTF-8")及setHeader("Content-Type","text/html;charset=UTF-8")
response.setContentType("text/html;charset=UTF-8");
String data = "中国";
OutputStream out = response.getWriter();
out.write(data);
时间: 2024-11-25 19:20:45

HttpServletResponse输出乱码的问题的相关文章

HttpServletResponse输出的中文乱码

HttpServletResponse输出有两种格式,一种是字符流,一种是字节流. 1.字符流 // 这句话的意思,是让浏览器用utf8来解析返回的数据,即设置客户端解析的编码 response.setContentType("text/html; chartset=UTF-8"); //这句话的意思,是告诉servlet用UTF-8转码,而不是用默认的ISO8859 ,即服务端对中文的编码 response.setCharacterEncoding("UTF-8"

Web运行控制台输出乱码解决总结

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/AServlet" method="post"> 用户名:<input type=&qu

jenkins控制台输出乱码

根据以往写代码的经验,jenkins控制台输出乱码有可能是编码导致的,问了一下度娘,果然如此,解决办法如下:修改下jenkins的配置文件,设置字符编码为:UTF-8即可,打开jenkins的安装目录,找到jenkins.xml文件,在<arguments>标签处添加红色字体,即定义编码为utf-8<arguments>-Xrs -Xmx512m -Dfile.encoding=utf-8 -Dhudson.lifecycle=hudson.lifecycle.WindowsSer

eclipse运行 Maven Test命令时控制台输出乱码的解决办法

在Maven的pom.xml文件中增加: <properties>      <argLine>-Dfile.encoding=UTF-8</argLine> </properties> 今天突然遇到这个问题了,上网搜了一下,答案一大堆,还是这个最好!记录一下! eclipse运行 Maven Test命令时控制台输出乱码的解决办法,布布扣,bubuko.com

VS2010中qDebug输出乱码的问题

1.开发环境:安装Qt5.3.2(离线安装包安装):VS版本为:2010 SP1Rel:源代码默认保存格式为GB2312. 2.输出乱码的代码 #include <QtCore/QCoreApplication> #include <QRegularExpression> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QString namePattern("人员状态表-(\\D+)-

Maven 执行Javadoc时控制台输出乱码问题

1.0  Maven 执行Javadoc时控制台输出乱码问题 问题描述 最近项目中使用maven-javadoc-plugin生成javadoc时,myEclipse控制台乱码. 插件配置 问题分析 检查maven输出时采用的编码格式 很显然maven默认输出采用GBK编码 myEclipse控制台输出编码,默认采用的是工作空间的编码格式. 改为 结果如下: 来自:http://www.cnblogs.com/albert-sun/archive/2013/03/21/2973993.html

xshell连接CentOS6.5 iptables或ls 输出乱码

今天用Xshell 连接CentOS6.5,当终端>编码设置为:Unicode(UTF-8)时,执行service iptables restart命令的输出就会乱码:当编码设置为:默认语言时,ls的输出就会乱码! 乱码问题如下图: 执行locale命令输出结果如下: LANG=zh_CN.GB18030 LC_CTYPE="zh_CN.GB18030" LC_NUMERIC="zh_CN.GB18030" LC_TIME="zh_CN.GB1803

解决Android LogCat 输出乱码的问题(转)

Android日志系统提供了记录和查看系统调试信息的功能.日志都是从各种软件和一些系统的缓冲区中记录下来的. 可以使用adb的logcat 命令来查看系统日志缓冲区的内容,但是在实际操作时,会发现在CMD的DOS界面上面,使用logcat命令直接输出的中文内容是乱码.如下图: 而这个问题只出现在使用logcat将日志直接打印在当前的DOS窗口的时候会出现:而使用logcat将日志保存为文件,再使用文本编辑工具打开的则显示正常,如图. 很明显是由于DOS窗口显示的编码同logcat日志中不同导致的

解决Jenkins console输出乱码

背景 Jenkins console输出乱码,如 ????????????? 1 解决办法 Jenkins Master 设置utf8 encoding Tomcat 启动脚本 export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8" Jenkins 系统管理 环境变量 Key: LANG, Value zh_CN.UTF-8 Jenkins Slave 启动脚本 nohup java "-Dfile.encoding=UTF-8 -j