Get,Post请求中文乱码问题有效解决方法

2023-11-19

对于做Java WEB项目同学来说,中文乱码问题是一个经常遇到而又非常头痛的问题,而最容易出现乱码的环节就是在浏览器向服务器发送请求的过程,至于出现乱码的原因不是本文的关注的重点,想了解的朋友可以参考

http://zhaomin819111.blog.163.com/blog/static/10659004200943112950956/

本文主要介绍如何有效解决web请求中的乱码问题,其实解决方法有很多种,不同的请求类型解决方法也不相同。

本文只介绍最方便的一种:

1、针对Post方式提交的请求如果出现乱码,可以每次在request解析数据时设置编码格式:

request.setCharacterEncoding("utf-8");

也可以使用编码过滤器来解决,最常用的方法是使用Spring提供的编码过滤器:

在Web.xml中增加如下配置(要注意的是它的位置一定要是第一个执行的过滤器):

<filter>
<filter-name>charsetFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>

该过滤器要做的其实就是强制为所有请求和响应设置编码格式:

request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8"
);

2、针对Get方式的乱码问题,由于参数是通过URL传递的,所以上面通过request设置的编码格式是不起作用的,此时可以在每次发生请求之前对URL进行编码:例如:Location.href="/encodeURI"("http://localhost/test/s?name=中文&sex=女");

当然也有更简便的方法,那就是在服务器端配置URL编码格式:

修改tomcat的配置文件server.xml:
             <Connector URIEncoding="UTF-8" 
                 port="8080"   maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               connectionTimeout="20000" disableUploadTimeout="true" />

只需增加 URIEncoding="UTF-8"  这一句,然后重启tomcat即可。

相信通过这两段配置,你再也不用担心遇到乱码啦,当然数据库还有可能出现乱码,那将是另一篇文章的事啦!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Get,Post请求中文乱码问题有效解决方法 的相关文章

  • Idea解决Java获取properties文件中值

    Idea Springboot项目解决java 获取properties文件中的值 详解 一 在使用分布式时 java 获取properties值 这里值得注意的时 Value这个注解默认可以获取到application propertie
  • 互联网 API 接口幂等性设计

    WEB 资源或 API 方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用 幂等性是系统的接口对外一种承诺 而不是实现 承诺只要调用接口成功 外部多次调用对系统的影响是一致的 幂等性是分布式系统设计中的一个重要概念 对超时处理 系
  • Servlet3.0基础

    一 要求 1 MyEclipse10 0或以上版本 2 发布到Tomcat7 0或以上版本 二 步骤 1 创建javaEE6 0应用 三 概述 注解代替web xml配置文件 异步处理 对上传的支持 四 注解代替配置文件 1 删除web x
  • Servlet+JDBC实战开发书店项目讲解第五篇:购物车实现

    Servlet JDBC实战开发书店项目讲解第五篇 购物车实现 引言 在之前的几篇博客中 我们讲解了如何使用Servlet和JDBC开发一个简单的书店管理系统 在本文中 我们将深入探讨购物车的实现 这是一个关键功能 允许用户将所需图书添加到
  • sql的几种约束,非空,不重

    NOT NULL 用于控制字段的内容一定不能为空 NULL UNIQUE 控件字段内容不能重复 一个表允许有多个 Unique 约束 PRIMARY KEY 也是用于控件字段内容不能重复 但它在一个表只允许出现一个 FOREIGN KEY
  • JavaWeb —— AJAX

    目录 AJAX 基本介绍 A synchronous JavaScript And XML 多用在 1浏览器搜索联想 2用户注册中离开光标 校验数据的正确性 同步和异步的区别 AJAX快速入门 AJAX 基本介绍 A synchronous
  • 解决Jenkins插件不能下载安装的问题

    安装到这一步 显示无法下载Jenkins插件 安装中升级站点 如果你还在安装过程中 遇见这个问题 你可以打开一个新的网页 输入网址http localhost 8080 pluginManager advanced 在最下面的升级站点 把其
  • STC仿真失败

    原因就是购买的下载工具不适合在烧写STC8H3K64S仿真固件后再将该下载工具作为USB转串口工具连接PC与目标板 推测是接入仿真时会重启目标板 不打算细究 换一个普通串口就好了
  • 外观设计模式

    外观设计模式 根据实际案例分析外观模式 Facade 示例 业务与设计模式落地案例 根据实际案例分析外观模式 Facade 案例 假设一个放电影功能 在播放电影时 需要放下窗帘 打开空调 打开播放机 打开音响 考虑用户观影时间较长时 提供暂
  • mysql不是内部或外部命令,也不是可运行的程序 或批处理文件。

    安装Mysql后 当我们在window r中输入cmd中敲入mysql时会出现 Mysql 不是内部或外部命令 也不是可运行的程序或其处理文件 打开我的电脑在我的电脑右键中选择属性 然后单击选择高级系统设置 在系统属性的 高级 中选择环境变
  • Java工具类之SFTP遍历查找指定目录下包含关键字的的所有文件

    一 工具类代码 public class SFTPUtil private transient Logger logger LoggerFactory getLogger this getClass private ChannelSftp
  • JDK 8 List集合使用记录

    JDK8 的新特性给我们开发带来了很大的便利性 先声明 我没有系统的去学习 JDK8的这些所有新特性 本文只是记录一些我个人日常开发中常遇到的一些 JDK8 的新特性方法 1 提取对象集合中的某一属性集合 List lt 对象 gt gt
  • 完美解决SpringMVC中org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping 404错误

    错误原因描述 出现该错误的原因主要是无法扫描注册 Controller注解的类的实例进入IOC容器而导致的 从而从一下几个方面来分析 MVC配置文件中 component scan 标签扫描包路径是否正确 且是否误写了排除 Controll
  • Mybatis+Servlet+Mysql 整合的一个小项目:对初学者非常友好,有助于初学者很快的上手Java Web

    文章目录 前言 为何要写 目录结构 1 依赖配置 1 1 创建一个web项目 1 2 依赖需求分析 1 3 pom xml 2 配置Mybatis 2 1 mybatis config xml 2 2 UserMapper xml 2 3
  • this调用本类的其他构造器

    Student类 package Java project 1 public class Student private String name private String schoolName public Student public
  • 【JavaWeb】网络原理初识

    网络原理初识 计算机网络的历史 局域网和广域网 网络组件中的重要设备 网络通信基础 基本概念 协议分层 OSI七层模型 TCP IP五层 或四层 模型 封装和分用 发送方 接收方 三层转发和二层转发 计算机网络的历史 计算机最初是为了打仗而
  • 计算机中的二进制表示-4和5

    十进制 二进制 5 00000000 00000000 00000000 00000101 4 11111111 11111111 11111111 11111100 负数的二进制如何得出 相信正数的二进制表示大家都懂 但是这个 4怎么来的
  • 5. handle方法详解-handler获取

    文章目录 1 概览 2 handle方法回顾 3 HandlerMappings继承关系 4 getHandlerInternal 4 1 RequestMappingInfoHandlerMapping getHandlerInterna
  • u盘突然乱码然后文件都不见了怎么办

    在我们日常使用电脑时 U盘作为常用的移动存储设备 扮演了重要的角色 然而 有时我们可能会遇到U盘突然出现乱码并无法访问文件的问题 这不仅让人感到困惑 还可能丢失重要的数据 本文旨在分享几种解决U盘乱码文件不可见问题的方法 帮助您尽快恢复U盘
  • java课程设计

    包含部署视频 1 基于ssh的婴幼儿产品销售系统毕业设计 项目报告 答辩PPT 源代码 数据库 截图 部署视频 2 基于jsp的医院管理住院系统毕业设计 项目报告 答辩PPT 源代码 数据库 部署视频 3 基于ssh的医院在线挂号系统毕业设

随机推荐

  • gcd补充说明

    1 下面来看下如何使用gcd编程的异步 dispatch async dispatch get global queue 0 0 处理耗时操作的代码块 通知主线程刷新 dispatch async dispatch get main que
  • 字节跳动Android面试凉凉,挥泪整理面筋,你不看看吗?

    想在金九银十找工作的现在可以开始准备了 这边给大家分享一下面试会遇到的问题 找工作还是需要大家不要担心 由于我们干这一行的接触人本来就不多 难免看到面试官会紧张 主要是因为怕面试官问的答不上来 答不上了千万不要胡扯一些 有了这篇文章 就不一
  • pickle模块

    pickle 提供四个功能分别是dumps loads dump load pickle是将数据以二进制的形式序列化后保存到文件中的 pickle可以储存的数据类型 必须是python中有的 布尔值 整数 浮点数 复数 字符串 字节 Non
  • java.lang.NoClassDefFoundError类错误解决方法

    在开发maven项目时 在完成代码编写后进行本地测试过程中经常会出现如下错误 java lang NoClassDefFoundError Could not initialize class xxx 当看到java lang NoClas
  • 一文彻底弄懂Linux软链接与硬链接,及其实际应用技巧

    本文参考 01 https blog csdn net weixin 33743703 article details 93158780 utm medium distribute pc relevant none task blog Bl
  • 解决idea maven reimport失效问题

    解决idea maven 项目中出现 Unable to import maven project 问题 最近自己搭建了一个项目 maven setting 仓库配置也使用了阿里云配置 maven版本使用的是目前最新版3 6 2 后来发现
  • win11怎么取消pin码实现自动登陆 windows11取消pin码自动登陆的方法步骤

    相信有不少用户最近都安装升级了最新的Win11操作系统 但是安装了之后发现自己的电脑每次开机都必须输入PIN码才可以登陆使用 而每次开机都出现这种情况就非常的麻烦 今天小编就带着的大家一起看看取消PIN码实现自动登陆电脑的方法吧 更多win
  • 力扣笔记(每日随机一题)——最佳买卖股票时机含冷冻期

    问题 中等 给定一个整数数组prices 其中第 prices i 表示第 i 天的股票价格 设计一个算法计算出最大利润 在满足以下约束条件下 你可以尽可能地完成更多的交易 多次买卖一支股票 卖出股票后 你无法在第二天买入股票 即冷冻期为
  • Vulkan再探(11):立方体贴图数组

    08 20 2020 文章目录 立方体贴图数组 创建纹理贴图 图像 拷贝区域 图像视图 着色器 片元着色器 立方体贴图数组 创建纹理贴图 提取信息 cubeMapArray width ktxTexture gt baseWidth cub
  • Linux服务器上top后发现僵尸进程的解决办法

    今天在熟悉Linux命令的时候 使用top查看服务器负载的时候 发现了zombie 简单理解成僵尸吧 这个参数 这个参数就代表僵尸进程的含义 什么是僵尸进程呢 这里盗用一下官方的解释 一个进程在调用exit命令结束自己的生命的时候 其实它并
  • 解决com.xpand依赖引入问题

    引言 starter canal实现了springboot与canal的集成 比原生的canal更加优雅 下载地址 https github com chenqian56131 spring boot starter canal 使用前需要
  • 一:计算机基础入门及介绍

    计算机基础入门篇 1 计算机系统 计算机 Conputer 俗称电脑 一种能接收和存储信息 并按照存储在其内部的程序对海量数据进行自动 高速的处理 然后把处理结果输出的现代化智能电子设备 计算机有很多的形式类型 例如 生活中常见的家用电脑
  • chrome误删收藏夹书签如何恢复?

    打开书签管理器 按下Ctrl Z 然后就恢复了
  • python与excel做数据可视化-Python的Excel操作及数据可视化

    Excel表操作 python操作excel主要用到xlrd和xlwt这两个库 即xlrd是读excel xlwt是写excel的库 安装xlrd pip install xlrd 简单的表格读取 import xlrd 读取表格 data
  • emmc分区创建脚本

    bin sh add a new primary partition Param PartNum 1 3 First cylinder Last cylinder add partition echo creat primary parti
  • 深入理解Go——反射reflect

    文章目录 反射使用常见场景 反射原理 反射的基本函数 反射使用常见场景 需要反射的 2 个常见场景 有时你需要编写一个函数 但是并不知道传给你的参数类型是什么 可能是没约定好 也可能是传入的类型很多 这些类型并不能统一表示 这时反射就会用的
  • MySQL 库操作

    目录 创建数据库 语法 案例 字符集和校验规则 建数据库 建表用 查看系统默认字符集以及校验规则 db opt 更改 查看数据库支持的字符集 查看数据库支持的字符集校验规则 校验规则对数据库的影响 排升序 操纵数据库 查看数据库 显示创建语
  • 数据结构与算法学习(day4)——解决实际问题

    前言 在本章的学习此前 需要复习前三章的内容 每个算法都动手敲一遍解题 宁愿学慢一点 也要对每个算法掌握基本的理解 前面我们学习了简化版桶排序 冒泡排序和快速排序三种算法 今天我们来实践一下前面的三种算法 本章的学习目标 1 回顾三个算法的
  • openwrt ttyd 不能使用(修改lan口地址后)

    修改lan口地址后openwrt ttyd会被拒无法使用 解决办法如下 1 ssh 到openwrt的终端 2 编辑ttyd的配置文件 vim etc init d ttyd 3 将配置文件如下代码注释 interface i interf
  • Get,Post请求中文乱码问题有效解决方法

    对于做Java WEB项目同学来说 中文乱码问题是一个经常遇到而又非常头痛的问题 而最容易出现乱码的环节就是在浏览器向服务器发送请求的过程 至于出现乱码的原因不是本文的关注的重点 想了解的朋友可以参考 http zhaomin819111