【问题解决:配置】解决spring mvc项目 get请求 获取中文字符串参数 乱码
get类型请求的发送过程
前端发送一个get请求的过程:
- 封装参数
- 进行URL编码,也就是将中文编码成一个带有百分号的字符串,具体可以在这个网站进行测试。http://www.esjson.com/urlEncode.html

- 进行Http编码,这里浏览器或者postman都是默认用ISO-8859-1标准进行编码。
- Tomcat收到请求后,进行解码,这里Tomcat默认采用ISO-8859-1进行解码。然后再利用URL标准进行解码。两次解码之后,我们就还原了这个(中文)字符串。
- 然后再接口内部就可以使用解析出来的参数对象了。
仔细想一下,编码到底是用来做什么的?其实是为了节约空间,UTF-8,GBK等均采用了不同的算法来表示世界上所有的字符。
我们为什么要有这么多编码呢?因为世界上的语言太多啦,每种编码标准都或多或少的偏向某一种语言,比如GBK中的GB就是表示“国标”的意思,用它来编码汉字,比UTF-8更加节约空间。
但是用GBK来表示韩文呢?日文呢?未必有UTF-8高效,具体要根据他们的编码规则进行分析,这里只是举个例子。
而无论哪一种编码,它都要对应到最终的一个通用的字典里,这个貌似叫做Unicode字典,这个字典包含了全世界存在的所有字符,进而就得到了我们的对象。
为什么不直接传输Unicode编码?可以,但是传输起来不如编码节约空间,考虑Huffman编码。
写Java的门槛太低了,这些从业者在网上大肆发帖子,造成了良莠不齐的现象。之前在配置环境的时候为了解决win下开发spring项目的控制台乱码问题,参考了网上的一些帖子。结果稀里糊涂,把server.xml里的URIEncoding改成了UTF-8,这对于浏览器就不通用了,因为浏览器默认采用的就是ISO-8859-1进行编码。
因此,造成了乱码问题。
解决方案
找到Tomcat目录下的conf目录,然后进入,打开server.xml文件,找到第一个connector标签,检查里面是否存在 URIEncoding 这个属性,如果有,把里面设置的 URIEncoding 去掉:
<!-- A "Connector" represents an endpoint by which requests are receivedand responses are returned. Documentation at :Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)Java AJP Connector: /docs/config/ajp.htmlAPR (HTTP/AJP) Connector: /docs/apr.htmlDefine a non-SSL HTTP/1.1 Connector on port 8080--><Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"/>
注:由于时间仓促,本文没有深入进行校验文献,只是凭借着自己的一些基础知识理解写成,如有错误,欢迎评论区指出,谢谢!
相关文章:
【问题解决:配置】解决spring mvc项目 get请求 获取中文字符串参数 乱码
get类型请求的发送过程 前端发送一个get请求的过程: 封装参数进行URL编码,也就是将中文编码成一个带有百分号的字符串,具体可以在这个网站进行测试。http://www.esjson.com/urlEncode.html 进行Http编码,这里浏览器或者postman都…...
python每日一练(9)
🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…...
JVM第十四讲:调试排错 - Java 内存分析之堆内存和MetaSpace内存
调试排错 - Java 内存分析之堆内存和MetaSpace内存 本文是JVM第十四讲,以两个简单的例子(堆内存溢出和MetaSpace (元数据) 内存溢出)解释Java 内存溢出的分析过程。 文章目录 调试排错 - Java 内存分析之堆内存和MetaSpace内存1、常见的内存溢出问题(内存…...
【1day】泛微e-office OA SQL注入漏洞学习
注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现...
线上问题:所有用户页面无法打开
线上问题:所有用户页面无法打开 1 线上问题2 问题处理3 复盘3.1 第二天观察 1 线上问题 上午进入工作时间,Cat告警出现大量linda接口超时Exception。 随后,产品和运营反馈无法打开页面,前线用户大量反馈无法打开页面。 2 问题处…...
RabbitMQ和spring boot整合及其他内容
在现代分布式应用程序的设计中,消息队列系统是不可或缺的一部分,它为我们提供了解耦组件、实现异步通信和确保高性能的手段。RabbitMQ,作为一款强大的消息代理,能够协助我们实现这些目标。在本篇CSDN博客中,我们将探讨…...
iperf3交叉编译
简介 iperf3是一个用于执行网络吞吐量测量的命令行工具。它支持时序、缓冲区、协议(TCP,UDP,SCTP与IPv4和IPv6)有关的各种参数。对于每次测试,它都会详细的带宽报告,延迟抖动和数据包丢失。 如果是ubuntu系…...
TARJAN复习 求强连通分量、割点、桥
TARJAN复习 求强连通分量、割点、桥 文章目录 TARJAN复习 求强连通分量、割点、桥强连通分量缩点桥割点 感觉之前写的不好, 再水一篇博客 强连通分量 “有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi>vj)有…...
python实现批量数据库数据插入
import pandas as pd import pymysql # 连接 MySQL 数据库 conn pymysql.connect( hostlocalhost, useryour_username, passwordyour_password, databaseyour_database_name, charsetutf8mb4, ) # 读取已有数据 existing_data pd.read_csv("86w全…...
python安装,并搞定环境配置和虚拟环境
鄙人使用Python来进行项目的开发,一般都是通过Anaconda来完成的。Anaconda不但封装了Python,还包含了创建虚拟环境的工具。 anaconda安装 安装anaconda,可以搜索清华镜像源,然后搜索anaconda,点击进入,然…...
Flink 的集群资源管理
集群资源管理 一、ResourceManager 概述 1、ResourceManager 作为统一的集群资源管理器,用于管理整个集群的计算资源,包括 CPU资源、内存资源等。 2、ResourceManager 负责向集群资源管理器申请容器资源启动TaskManager实例,并对TaskManag…...
STM32学习笔记
前言 今天开始学习STM32,公司封闭git网络,所以选择CSDN来同步学习进度,方便公司和家里都能更新学习笔记。 参考学习资料 江科大STM32教学视频: 江科大自动协STM32视频_哔哩哔哩_bilibili...
Java应用性能问题诊断技巧
作者:张彦东 参考:https://developer.aliyun.com/ebook/450?spma2c6h.20345107.ebook-index.28.6eb21f54J7SUYc 文章目录 (一)内存1.内存2.内存-JMX3.内存-Jmap4.内存-结合代码确认问题 (二)CPU1.CPU-JMX或…...
监控系列(六)prometheus监控DMHS操作步骤
一、监控的操作逻辑 给操作系统安装expect命令expect脚本执行dmhs_console脚本执行 cpt / exec 命令用脚本进行过滤字符串过滤dm_export读取脚本与当前日期作比较,然后返回差值 二、安装步骤 1. linux中Expect工具的安装及使用方法 https://blog.csdn.net/wangta…...
SLAM从入门到精通(dwa速度规划算法)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 要说搜路算法,这个大家都比较好理解。毕竟从一个地点走到另外一个地点,这个都是直觉上可以感受到的事情。但是这条道路上机…...
嵌入式实时操作系统的设计与开发(aCoral线程学习)
真正的RTOS,基本上没有做到进程,只是停留在多线程,因为多进程要解决很多问题,且需要硬件支持,这样就使得系统复杂了,从而就可能影响系统实时性。 线程之间是共享地址的,也就是说当前线程的地址…...
JAVA基础(JAVA SE)学习笔记(二)变量与运算符
前言 1. 学习视频: 尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)_哔哩哔哩_bilibili 2023最新Java学习路线 - 哔哩哔哩 正文 第一阶段:Java基本语法 1. Java 语言概述 JAVA基础(JAVA SE)学习…...
chatgpt 接口 和 jupyter版本安装
一 接口代码 有时间继续测试 import openai # 填入你的api_key openai.api_key ""models openai.Model.list()# 定义API参数 params {role: "user", "content": }# 定义循环 while True:# 获取用户输入user_input input("请输入您的消…...
ubuntu20.04 nerf开山之作
源码 GitHub - yenchenlin/nerf-pytorch: A PyTorch implementation of NeRF (Neural Radiance Fields) that reproduces the results. 代码的相关解读 NeRF代码解读-相机参数与坐标系变换 - 知乎 原文题目:NeRF: Representing Scenes as Neural Radiance Field…...
Java 中实现单例模式
单例模式 单例模式,就是一个类在任何情况下绝对只有一个实例,并且提供一个全局访问点来获取该实例。 要实现单例,至少需要满足两个点: 私有化构造方法,防止被外部实例化造成多实例问题 提供一个静态方位作为全局访问点…...
周末短途游成新风尚,家门口也能遇见诗与远方
如今生活节奏不断加快,长时间的长途旅行对很多人来说成了一种奢望,周末短途游便顺势走进大众生活,成为越来越多人放松身心的选择。不必提前很久规划行程,不用纠结复杂的交通攻略,甚至不用打包厚重的行李,只…...
惠普OMEN笔记本终极性能控制:OmenSuperHub 5分钟完全指南
惠普OMEN笔记本终极性能控制:OmenSuperHub 5分钟完全指南 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度,自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 想要彻底释放惠普OMEN游戏本的性能潜…...
别再为路径报错头疼了!手把手教你将Robei工程无缝迁移到Quartus II(附文件整理技巧)
从Robei到Quartus II:工程迁移的完整避坑指南 第一次把Robei工程导入Quartus II时,我盯着满屏的路径报错和未定义模块提示,差点把键盘摔了。这种挫败感想必每个FPGA初学者都经历过——明明在Robei里运行完美的设计,换到Quartus II…...
保姆级教程:在Ubuntu上把YOLOv5的ONNX模型转成RV1126能用的RKNN模型(附完整代码)
从ONNX到RKNN:YOLOv5模型在RV1126平台的完整转换指南 当清晨的第一缕阳光透过窗帘缝隙洒在键盘上,我正盯着终端里那个顽固的ONNX模型发愁——它已经在我的Ubuntu工作站上运行了整整一夜,却依然没能成功转换为RV1126开发板可用的RKNN格式。这…...
通过 curl 命令快速测试 Taotoken 大模型接口连通性
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过 curl 命令快速测试 Taotoken 大模型接口连通性 在接入大模型服务时,直接使用 curl 命令进行接口测试是一种高效且…...
Taotoken模型广场功能在项目技术选型中的实际价值
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken模型广场功能在项目技术选型中的实际价值 1. 启动新项目时的模型选型挑战 当我们开始一个新的技术项目,尤其是…...
Bee 蜂群效应智能体架构
第一章 绪论 1.1 研究背景与问题提出 在通用人工智能(AGI)发展的演进脉络中,传统单体大模型的“规模即智能”范式正面临算力瓶颈、泛化能力受限以及系统脆弱性等多重挑战。这种中心化架构在面对动态、开放的复杂环境时,其自适应与持续学习能力显得尤为不足。在此背景下,…...
告别Modelsim命令行!用Notepad++插件NppExec一键检查Verilog语法(附详细配置命令)
硬件工程师的效率革命:Notepad与Verilog语法检查的终极整合方案 在数字电路设计领域,Verilog作为主流硬件描述语言,其语法检查是每位工程师日常工作中不可或缺的环节。传统工作流程中,工程师们不得不在文本编辑器与EDA工具之间频繁…...
5分钟快速上手:FlicFlac音频格式转换工具完全指南 [特殊字符]
5分钟快速上手:FlicFlac音频格式转换工具完全指南 🎵 【免费下载链接】FlicFlac Tiny portable audio converter for Windows (WAV FLAC MP3 OGG APE M4A AAC) 项目地址: https://gitcode.com/gh_mirrors/fl/FlicFlac 还在为不同设备间的音频格式…...
agent 学习路径解析 学习资源分享
文章目录 先给结论:你接下来不要优先读 GLM-4.5你对 agent 的轻视,有一半对,一半错关于 Claude Code 泄露:你应该学“架构收获”,不要沉迷“源码猎奇”你提到的 learn-claude-code 仓库:值得看,…...
