Tomcat部署项目get请求中文乱码

news2024/11/15 21:31:31

问题描述

  1. tomcat部署的项目,get请求到后端后,打印日志发现通过@RequestParam()接收的参数值乱码。

问题猜测

编码错误导致的乱码。

流程梳理

  1. 浏览器发送请求时会自动对请求链接中自带的参数进行编码。编码时一般都是采用UTF-8的格式进行编码。
  2. 请求到达Tomcat后,Tomcat会对其进行解码。操作。这里是重点,tomcat8之前的版本默认解码格式是使用的ISO8859-1。tomcat8之后的版本默认是采用UTF-8
  3. 将解码后的参数值送到对应的controller中的指定方法进行处理。

问题分析

  1. 确认tomcat版本。若是8之前的版本,查看server.xml配置文件中的Connector标签的配置,若没有配置URIEncoding,则默认是ISO8859-1编码格式。导致乱码问题。
    在这里插入图片描述

问题解决

方法一:

修改tomcat配置。增加URIEncoding配置,指定为UTF-8编码格式。如图

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" 
			   URIEncoding="UTF-8"/>

在这里插入图片描述

方法二:

修改代码在对应的后端代码中对乱码字符串进行恢复。

//fileName为接收的参数。
fileName = new String(fileName.getBytes("ISO8859-1"),"UTF-8");

在这里插入图片描述

代码解释:

  • 获取 ISO-8859-1 编码的字节 → 这些字节实际上是 UTF-8 编码的原始字节
  • 使用 UTF-8 重新解码这些字节 → 得到正确的中文字符

编码错误问题解释

  1. 浏览器发送请求时会自动对字符进行编码,这时使用的是UTF-8的格式进行编码。
  2. 请求到达tomcat后,connector中的uriEncoding默认是 ISO8859-1编码格式。此时会用此编码进行解码。由于编码不是该格式。导致解码后乱码。
  3. 请求到达controller对应的方法后。接收到的字符串就是乱码的字符串。

end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2055197.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑无法新建 Word Excle PPT 这些文件是咋回事

咦 我的电脑怎么没有 Excel文件 Word文件 和 PPT选项嘞 &#xff01;&#xff01; 今天突然要写个材料&#xff0c;发现自己新建文件竟然没有excel文档 word和ppt幻灯片这些选项。哦 原来是我自己上次把电脑从win7升级win10系统之后还没有安装wps这些所以不能使用。如果你的电…

SIRA-PCR: Sim-to-Real Adaptation for 3D Point Cloud Registration 论文解读

目录 一、导言 二、 相关工作 1、三维点云配准工作 2、无监督域适应 三、SIRA-PCR 1、FlyingShape数据集 2、Sim-to-real自适应方法 3、配准 4、损失函数 一、导言 该论文来自于ICCV2023&#xff0c;论文提出了一种新的方法SIRA-PCR&#xff0c;通过利用合成数据Flying…

[RoarCTF2019]黄金6年

下载解压得一个MP4视频文件 播放了一下几秒过&#xff0c;太快了&#xff0c;使用Potplayer做视频切片&#xff0c;空格暂停播放&#xff0c;使用D F两个快捷键逐帧查看&#xff08;F前进一帧&#xff0c;D后退一帧&#xff09; 发现一个二维码&#xff0c;扫码得key1&#xf…

PiX4Dmatic1.63 Pix4Dsurvey1.63 实景三维建模软件功能介绍 下载软件License使用

PIX4D matic摄影测量软件是一款非常不错的摄影测量软件&#xff0c;这款软件用于廊道和大比例尺测绘的下一代摄影测量软件&#xff0c;PIX4D matic也支持常用的垂直坐标系及其相应的大地水准面。 PIX4D matic(摄影测量软件)是一款非常不错的摄影测量软件&#xff0c;这款软件用…

如果提议者提议区块的时间晚了,会对见证有何影响?

原文标题&#xff1a;《On Attestations, Block Propagation, and Timing Games》 撰文&#xff1a;Nero_eth 编译&#xff1a;Tia&#xff0c;Techub News 如今&#xff0c;提议者的时序博弈已经很常见了&#xff0c;很多研究也都在分析这一现象。 本篇文章将带大家了解提议…

windows上传的文本在linux执行不了,格式转换

在windows编辑的文件脚本上传到linux里面执行不了 1.现象描述 比如在windows编辑简单的文本 2.上传到linux后执行无结果 无响应 3.编码问题 比普通文件多了with CRLF line terminators结尾格式。 cat -v 可以让隐藏的转义字符也打印中显示 4.原因windows和linux的换行符不…

逐级删除空目录 如果目录非空则停止删除操作 os.removedirs(path)

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 逐级删除空目录 如果目录非空 则停止删除操作 os.removedirs(path) [太阳]选择题 下列关于代码和os.removedirs(path)函数说法正确的是&#xff1f; import os os.makedirs("D:/test1…

GAMES101——作业5 光线与三角形相交(菲涅尔反射率)

任务 需要修改的函数是&#xff1a; Renderer.cpp 中的 Render() &#xff1a;这里你需要为每个像素生成一条对应的光线&#xff0c;然后调用函数 castRay() 来得到颜色&#xff0c;最后将颜色存储在帧缓冲区的相应像素中。 Triangle.hpp 中的 rayTriangleIntersect() :…

测试八股文(自总版)(更新中...)

测试八股文---从网上各处搜罗滴 软件测试的一些基础知识1. 什么是软件&#xff1f;1. 什么是软件测试?2. 软件测试分类?3. 软件生命周期的各阶段4. 几个模型---瀑布模型 , V模型 , 敏捷开发模型5. 软件测试基本流程&#xff08;1&#xff09;需求分析测试需求分析具体怎么来进…

力扣爆刷第174天之TOP200五连刷136=140(最小k数、字典序、跳跃游戏)

力扣爆刷第174天之TOP200五连刷136140&#xff08;最小k数、字典序、跳跃游戏&#xff09; 文章目录 力扣爆刷第174天之TOP200五连刷136140&#xff08;最小k数、字典序、跳跃游戏&#xff09;一、LCR 159. 库存管理 III二、450. 删除二叉搜索树中的节点三、440. 字典序的第K小…

【C语言】进程和线程详解

目录 C语言进程和线程详解1. 进程和线程的对比2. 进程的基本概念2.1 进程的定义2.2 进程的特点2.3 进程的生命周期 3. 进程管理3.1 进程创建3.2 进程间通信&#xff08;IPC&#xff09;3.2.1 管道&#xff08;Pipe&#xff09; 4. 线程的基本概念4.1 线程的定义4.2 线程的特点 …

Halcon灰度图像的形态学运算

Halcon灰度图像的形态学运算 本文介绍的算子的输入类型是灰度的Image图像。 1. 灰度图像与区域的区别 基于区域的形态学运算与基于灰度图像的形态学运算的根本区别在于&#xff0c;二者输入的对象不同。前者输入的是一些区域&#xff0c;并且这些区域是经过闽值处理的二值图…

微信小程序在线客服源码系统全端通吃 带完整的安装代码包以及搭建部署教程

系统概述 “微信小程序在线客服源码系统全端通吃”是一款集智能客服、人工客服、消息管理、数据分析等功能于一体的综合性解决方案。该系统基于微信小程序平台开发&#xff0c;支持全端接入&#xff08;包括Web、App、小程序等&#xff09;&#xff0c;实现多渠道客户服务的无…

英国海外媒体通稿宣发:顶级媒体宣发

1.伦敦日报londonjournal 作为英国首都的权威日报&#xff0c;伦敦日报一直是英国新闻界的佼佼者。它详尽报道伦敦及英国各地的政治、经济、社会、文化、体育等各方面的新闻&#xff0c;深受读者喜爱。 2.英国先驱报ukherald 英国先驱报是一份全国性日报&#xff0c;以深度分…

源码构建LAMP

目录 一、安装Apache 二、安装Mysql 三、安装PHP 四、安装论坛 一、安装Apache 1.cd 到opt目录下面&#xff0c;将压缩包拉进Xhell 2.解压缩apr和httpd压缩包 tar xf apr-1.6.2.tar.gz tar xf apr-util-1.6.0.tar.gz tar xf httpd-2.4.29.tar.bz2 3.将apr-1.6.2 移动到ht…

playbook(剧本)基本应用、playbook常见语法、playbook和ansible操作的编排

playbook(剧本): 是ansible⽤于配置,部署,和管理被控节点的剧本。⽤ 于ansible操作的编排。 使⽤的格式为yaml格式 一、YMAL格式 以.yaml或.yml结尾 ⽂件的第⼀⾏以 "---"开始&#xff0c;表明YMAL⽂件的开始(可选的) 以#号开头为注释 列表中的所有成员都开始于…

开放式耳机原理是什么?它通过不入耳的方式带来动感音乐

开放式耳机的原理主要分为两种类型&#xff1a;气传导和骨传导。 气传导耳机&#xff1a;这种耳机的工作原理依赖于空气作为声音传播的介质。具体来说&#xff0c;音频设备通过耳机线将电信号传递到耳机&#xff0c;耳机内部的驱动单元&#xff08;通常是动圈式或平衡电枢式&am…

未开启语音助手时,远程控制功能助你快速在家找回手机!

完成一整天的大扫除之后&#xff0c;顺手就想摸出手机刷一下短视频&#xff0c;但摸不到。干了一天活&#xff0c;手机放哪里都忘了&#xff0c;于是不得不在几个房间之间寻找。 但找过手机的都知道&#xff0c;越找越是找不到。糟糕的是前几天我嫌麻烦&#xff0c;把语音助手…

<数据集>铝型材缺陷识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;1885张 标注数量(xml文件个数)&#xff1a;1885 标注数量(txt文件个数)&#xff1a;1885 标注类别数&#xff1a;10 标注类别名称&#xff1a;[budaodian, tufen, loudi, qikeng, pengshang, tucengkailie, zangdi…

光伏模拟器的应用

太阳能光伏 (PV) 模拟器是一种可编程电源&#xff0c;用于模拟太阳能电池板。模拟器具有快速瞬态响应&#xff0c;可响应负载条件的变化并保持电压-电流特性的输出。 用户可以根据系统规格定义太阳能电池板配置&#xff0c;并通过选择环境条件来选择适当的环境条件进行模拟。用…