4-2-在Servlet中解决中文输出乱码问题
一、创建ChineseServlet
public class ChineseServlet extends HttpServlet {private static final long serialVersionUID = -4526004697502051528L;public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String data = "中国";PrintWriter out = response.getWriter();out.println(data);}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}
}
二、分析乱码原因
http://localhost:8080/chapter04/ChineseServlet
response.getWriter()得到的字符输出流默认采用ISO-8859-1编码,该码表编码范围是0x00-0xFF,明显兼容不了中文,查不到的字符就编码为63,当浏览器解码时,默认采用GB2312,将63解码为?(因为在使用GB2312的程序中,通常采用EUC储存方法,以便兼容于ASCII)
那么把输出流的编码设为GB2312,行不行呢?
response.setCharacterEncoding("gb2312");
String data = "中国";
PrintWriter out = response.getWriter();
out.println(data);
行是行了,但我们一般采用utf-8,因为utf-8更通用,表示的字符更多。所以
response.setCharacterEncoding("utf-8");
再进行测试
乱码,刚才说了浏览器默认是gb2312,所以得通过某种方式告诉浏览器,我发过来的流是utf-8编码的哦,那么浏览器就给你utf-8解码。什么方式呢?设置响应消息头
response.setHeader("Content-Type", "text/html;charset=utf-8");
三、两种方式解决中文乱码
1.
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Type", "text/html;charset=utf-8");
分析了源码,发现第一行代码不要也可以,于是验证,结果也是正确的。
2.更简便的方式,包含第一种方式的两个功能
response.setContentType("text/html;charset=utf-8");
4-2-在Servlet中解决中文输出乱码问题相关推荐
- 求长方体的体积(C语言)(解决中文输出乱码)
输入长方体的长,宽,高即可输出长方体的体积 #include <stdio.h> //编译预处理指令int main() //定义主函数 { int a,b,c,v,s; //定义变量a, ...
- Clion 2021解决中文输出乱码问题-亲测有效
最近在使用Clion 2021的过程中,发现输出中文会出现乱码的问题 于是就整理了自己在网上找的教程,并亲测有效 第一步,找到设置 第二步,把标注区域修改为UTF-8,保存 第三步,快捷键Ctrl+S ...
- eclipse + pydev 编译中解决中文显示乱码问题
最近在学习python编程,开发环境设置好了,是用eclipse + pydev 来做开发的环境,配置好了之后,需要解决的一个关键问题就是老问题了:如何解决代码中的中文问题. 同时也解决了Sy ...
- 解决 IntelliJ IDEA Tomcat 控制台中文输出乱码问题
解决 IntelliJ IDEA Tomcat 控制台中文输出乱码问题 参考文章: (1)解决 IntelliJ IDEA Tomcat 控制台中文输出乱码问题 (2)https://www.cnbl ...
- Jenkins控制台中文输出乱码解决方法
Jenkins控制台中文输出乱码解决方法 参考文章: (1)Jenkins控制台中文输出乱码解决方法 (2)https://www.cnblogs.com/dreamer-fish/p/1181204 ...
- 取出Cookie中的中文显示乱码解决方法。经验证第三种方法有效。
取出Cookie中的中文显示乱码解决方法 HttpUtility.UrlEncode(Response.Cookies[ "newcookie "].Values); HttpU ...
- 如何解决oracle中文乱码问题,oracle中解决中文乱码问题
中文乱码问题解决 1.查看服务器端编码 select userenv('language') from dual; 查到结果是: USERENV('LANGUAGE') --------------- ...
- Pycharm控制台中文输出乱码怎么办?控制台输出乱码问题的解决方法
Pycharm控制台中文输出乱码怎么办?控制台输出乱码问题的解决方法 **1. 乱码显示** **2. 乱码显示** **3. 乱码显示等等** 快捷操作:可选择文章目录来快速直达查看 文章目录 Py ...
- JAVA运行时中文输出乱码原因与解决
JAVA运行时中文输出乱码 public class project1 { public static void main(String[] args) {System.out.println(&qu ...
最新文章
- 在存储过程中如何实现将ID列表字符串传入IN()
- mysql主备模型,MySQL数据同步【双主热备】
- 8148和8127中的ezsdk和dvrsdk
- Goodbye, 2010. Hello 2011...
- 【推荐】(SqlServer)不公开存储过程sp_Msforeachtable与sp_Msforeachdb详解
- VSCode尝试在目标目录创建文件发生错误
- mysql win7 zip_win7 下zip版mysql安装
- 【cs231】损失函数与优化
- 用于实时视频和图像去雾的优化对比度增强算法
- day_8——LeetCode1:两数之和
- Ubuntu云服务器搭建饥荒联机版服务器教程
- 大一新生必看,自学必看,里昂详解数据结构之队列
- 嵌入式培训如何学?什么人适合转行嵌入式开发?
- 【转】增强型、耗尽型MOS
- 电路原理计算机,电路原理A卷(07计算机).doc
- 搞懂敏感性、特异性以及精确率和召回率的关系
- Xcode配置开发分组development team
- 【案例】使用CSS3实现天空变化效果
- 晴天科技冲刺上市:实控人丁一波系本科肄业,粤民投为其股东
- 从客户端到服务器端,适配微信iOS OpenSDK中的Universal Links
热门文章
- 【kafka】Kafka中的动态配置源码分析
- 【java】为什么 HashMap 的加载因子是0.75?
- Spark Structured Kudu : RejectedExecutionException: Worker has already been shutdown
- 95-290-055-源码-内存管理-HybridMemorySegment
- 【Antlr】Antlr 在语法中嵌入任意动作
- Docker 安装 Tomcat
- 爽到爆!阿里腾讯都在用的API管理神器,API文档、测试、Mock全搞定
- 如何用多线程方式,提高rabbitmq消息处理效率?
- VCL组件之Name属性
- java多线程 游戏_java利用多线程和Socket实现猜拳游戏