关于Tomcat中文乱码


最近在复习servlet的时候发现了令人困扰的tomcat中文乱码问题,查阅tomcat源码并且Debug最终找到乱码的罪魁祸首。
默认情况下,浏览器对post提交的中文数据进行urlencode编码,而且通过form提交的数据html是无法设置charset的,但是servlet需要根据request的getCharacterEncoding()方法来确定请求数据的编码格式,此时获取的编码格式为null,此时一下代码片段就会执行导致中文乱码:

public final class Parameters {...private void urlDecode(ByteChunk bc)throws IOException {if( urlDec==null ) {urlDec=new UDecoder();}urlDec.convert(bc, true);}...
}

其中ByteChunk 是经urlencode过的字符串,经过这个方法编码之后就产生了乱码。
解决方式:request.setCharacterEncoding(“utf-8”);,在service方法中将request的编码格式设置为utf-8就不会再存在乱码问题。

此问题主要针对post方法而言,因为对post方法来说才存在content-type和content-encoding。

关于Tomcat中文乱码问题的探究相关推荐

  1. Tomcat中文乱码问题的原理和解决方法

    为什么80%的码农都做不了架构师?>>>    Tomcat中文乱码问题的原理和解决方法 自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决 ...

  2. Linux麒麟系统中文乱码,ubuntu麒麟系统tomcat中文乱码怎么办?ubuntu tomcat中文显示乱码解决方法...

    在ubuntu麒麟系统中安装tomcat后,用户在搭建Demo程序的过程中有遇到tomcat中文显示乱码的情况,一般乱码都是因为编码问题导致的,而如果大家的编码设置是正确的话就是下面的原因导致的,遇到 ...

  3. idea console中文乱码_idea控制台tomcat中文乱码的处理方法

    第一步: 在idea的目录中找: 第二步: 在idea64.exe.vmoptions中添加一句话: 保存关闭 第三步: 关闭idea再重新启动 第四步: 在往tomcat中部署项目时在VM opti ...

  4. JSP中文乱码解决方案了解和TOMCAT中文乱码解决

    java 中文乱码终极解决方案 首先,确保你的数据库是支持中文的.把数据库的编码方式设置能支持中文的,如GB2132,utf-8等,而且经过测试后确实能写入中文且正常显示.这样就就保证了数据库确实是支 ...

  5. Tomcat中文乱码配置

    因为某硕售后非得重装系统,导致电脑上所有软件都得重装,配置tomcat发现乱码,然后百度csdn研究了一遍 ,都没好使. apache官网下载tomcat我下载的是9.0.68版本然后使用发现中文乱码 ...

  6. Tomcat 中文乱码解决过程

    工具: intellij2018, tomcat9 1,最初在server控制台Tomcat信息正常, 项目中文乱码(非问号的那种) 这时我误点了Intellij右下角的UTF-8,改成了GBK,这下 ...

  7. 解决javaweb Tomcat中文乱码的完整思路。

    相信很多初学者在刚开始使用Tomcat的时候都被中文乱码问题所困扰过,我曾经也遇到了这个问题,苦苦搜寻各大社区,看了无数帖子,结果依然没有解决问题.原因有两个,一是我比较笨<,二是确实这个问题过 ...

  8. Windows Tomcat安装配置,Tomcat 启动闪退,Tomcat中文乱码解决

    ================================ ©Copyright 蕃薯耀 2021-12-29 ​​​蕃薯耀的博客_CSDN博客 一.Tomcat 启动闪退问题描述 apache ...

  9. spring自带tomcat中文乱码问题解决

    在使用springMVC框架时会用到Tomcat服务器,目前tomcat10已经解决乱码问题,但是低于此版本的tomcat服务器会出现中文乱码问题. 本文主要解决的是将前端提交的中文数据输出在控制台时 ...

最新文章

  1. Redis - 事务
  2. CentOS下ZooKeeper单机模式、集群模式安装
  3. Angular ngTemplateOutlet 元素的学习笔记
  4. FreeMaker+Xml导出word(含图片)
  5. 如何更改mysql服务名_技术小百科 |【云小课】数据复制服务如何实现对象名映射...
  6. 修改 input 框里的字体、颜色
  7. python爬取内容乱码_python爬取html中文乱码
  8. mysql优化-面试题
  9. Centos 7.3 搭建php7,mysql5.7,nginx1.10.1,redis
  10. php 开发一元夺宝插件,yiyuanyungou 一元云购商城源码,商用 ci框架开发,带指定中奖插件 Other systems 其他 249万源代码下载- www.pudn.com...
  11. mysql创建用户临时表_mysql创建与删除临时表实例
  12. 程序员必备的七个电脑软件
  13. 针对ESXI5.5 本地磁盘分区丢失的解决方法,
  14. 4个基本不等式的公式高中_高中数学基本不等式知识点
  15. Apriori算法(经典的发现频繁项目集算法)分析
  16. EBS之挂载表单的详细步骤
  17. 什么是UML,UML类图
  18. Python4班平均成绩统计_2021小升初必看!成都各个初中成绩如何?师资咋样?不同成绩的孩子该怎么准备?...
  19. python中string什么意思_python字符串(string)方法整理
  20. Unity制作头顶血条方式对比与优化

热门文章

  1. 基于 ijkplayer开发的Android直播软件
  2. Android 画图方式
  3. 干货 | 区块链的技术世界观
  4. fatal: unable to access ‘https://gitee.com/****/****.git/‘: The requested URL returned error
  5. 宏基微型计算机机箱怎么打开,机箱也智能 自己动手打造自动温控机箱
  6. 如何在高德地图windowInfo弹窗中使用VUE组件
  7. Codeforces Round #614 (Div. 2) E. Xenon's Attack on the Gangs(DP记忆化搜索+思维)
  8. 蓝牙5.1定位--蓝牙定位信标--新导智能
  9. 瑞吉外卖项目剩余功能补充
  10. Python 理解 精灵 和 精灵组