一、创建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中解决中文输出乱码问题相关推荐

  1. 求长方体的体积(C语言)(解决中文输出乱码)

    输入长方体的长,宽,高即可输出长方体的体积 #include <stdio.h> //编译预处理指令int main() //定义主函数 { int a,b,c,v,s; //定义变量a, ...

  2. Clion 2021解决中文输出乱码问题-亲测有效

    最近在使用Clion 2021的过程中,发现输出中文会出现乱码的问题 于是就整理了自己在网上找的教程,并亲测有效 第一步,找到设置 第二步,把标注区域修改为UTF-8,保存 第三步,快捷键Ctrl+S ...

  3. eclipse + pydev 编译中解决中文显示乱码问题

    最近在学习python编程,开发环境设置好了,是用eclipse + pydev 来做开发的环境,配置好了之后,需要解决的一个关键问题就是老问题了:如何解决代码中的中文问题.     同时也解决了Sy ...

  4. 解决 IntelliJ IDEA Tomcat 控制台中文输出乱码问题

    解决 IntelliJ IDEA Tomcat 控制台中文输出乱码问题 参考文章: (1)解决 IntelliJ IDEA Tomcat 控制台中文输出乱码问题 (2)https://www.cnbl ...

  5. Jenkins控制台中文输出乱码解决方法

    Jenkins控制台中文输出乱码解决方法 参考文章: (1)Jenkins控制台中文输出乱码解决方法 (2)https://www.cnblogs.com/dreamer-fish/p/1181204 ...

  6. 取出Cookie中的中文显示乱码解决方法。经验证第三种方法有效。

    取出Cookie中的中文显示乱码解决方法 HttpUtility.UrlEncode(Response.Cookies[ "newcookie "].Values);  HttpU ...

  7. 如何解决oracle中文乱码问题,oracle中解决中文乱码问题

    中文乱码问题解决 1.查看服务器端编码 select userenv('language') from dual; 查到结果是: USERENV('LANGUAGE') --------------- ...

  8. Pycharm控制台中文输出乱码怎么办?控制台输出乱码问题的解决方法

    Pycharm控制台中文输出乱码怎么办?控制台输出乱码问题的解决方法 **1. 乱码显示** **2. 乱码显示** **3. 乱码显示等等** 快捷操作:可选择文章目录来快速直达查看 文章目录 Py ...

  9. JAVA运行时中文输出乱码原因与解决

    JAVA运行时中文输出乱码 public class project1 { public static void main(String[] args) {System.out.println(&qu ...

最新文章

  1. 在存储过程中如何实现将ID列表字符串传入IN()
  2. mysql主备模型,MySQL数据同步【双主热备】
  3. 8148和8127中的ezsdk和dvrsdk
  4. Goodbye, 2010. Hello 2011...
  5. 【推荐】(SqlServer)不公开存储过程sp_Msforeachtable与sp_Msforeachdb详解
  6. VSCode尝试在目标目录创建文件发生错误
  7. mysql win7 zip_win7 下zip版mysql安装
  8. 【cs231】损失函数与优化
  9. 用于实时视频和图像去雾的优化对比度增强算法
  10. day_8——LeetCode1:两数之和
  11. Ubuntu云服务器搭建饥荒联机版服务器教程
  12. 大一新生必看,自学必看,里昂详解数据结构之队列
  13. 嵌入式培训如何学?什么人适合转行嵌入式开发?
  14. 【转】增强型、耗尽型MOS
  15. 电路原理计算机,电路原理A卷(07计算机).doc
  16. 搞懂敏感性、特异性以及精确率和召回率的关系
  17. Xcode配置开发分组development team
  18. 【案例】使用CSS3实现天空变化效果
  19. 晴天科技冲刺上市:实控人丁一波系本科肄业,粤民投为其股东
  20. 从客户端到服务器端,适配微信iOS OpenSDK中的Universal Links

热门文章

  1. 【kafka】Kafka中的动态配置源码分析
  2. 【java】为什么 HashMap 的加载因子是0.75?
  3. Spark Structured Kudu : RejectedExecutionException: Worker has already been shutdown
  4. 95-290-055-源码-内存管理-HybridMemorySegment
  5. 【Antlr】Antlr 在语法中嵌入任意动作
  6. Docker 安装 Tomcat
  7. 爽到爆!阿里腾讯都在用的API管理神器,API文档、测试、Mock全搞定
  8. 如何用多线程方式,提高rabbitmq消息处理效率?
  9. VCL组件之Name属性
  10. java多线程 游戏_java利用多线程和Socket实现猜拳游戏