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
  • mysql 5.6 安装流程

    一 首先解压安装包到指定路径 解压路径不可为中文 二 配置环境变量 我是windows11 1 1 2 3 4 5 6 6 全部点击确定 三 更改my ini 这两条路径更改为与环境变量相同路径 四 运行cmd 1 2 输入mysqld i
  • servlet实现文件上传

    上传文件满足条件 1 需要有个表单 表单里面有个input类型为file的上传域 2 请求方法必须是POST 3 表单需要添加enctype属性 Content Type multipart form data 告知服务器提交数据的MIME
  • Servlet接口实现类

    JavaWeb 03 Servlet 02 Servlet接口实现类 1 什么是Servlet接口 有什么用 Servlet接口来自于Servlet规范中的一个接口 这个接口存在于Http服务器所提供的jar包中 Servlet接口的具体位
  • java_web:基于三层架构实现学生信息管理1.0(对学生信息的增删改查)

    学生信息管理1 0 涉及的知识点 三层架构理论 简单理解三层架构就是 上层调用下层 下层为上层提供服务 最上层 视图层 由jsp servlet组成 中间层 服务层 组装数据访问层所实现的功能 最下层 数据访问层 实现单一得某项功能 为服务
  • 进阶java大师之路,泛型在hashmap上的灵活运用

    由于 公司的试用的框架上 存在大量的hashmap的创建 产生大量的I O 以及内存的消耗 所以 抽了点时间 看书 effective java 这本书 同时 也从项目的作者 framework 上学习 吸取 最终写出了 符合生产的方案 存
  • 编写 EL 自定义函数 的方法

    一 利用EL表达式调用普通Java类中的静态方法 1 编写一个java类 并编写一个静态方法 如下所示 public class ElDemo 静态方法 将小写转换为大写 public static String convert Strin
  • javaweb——Response下载文件

    HttpServletResponse web服务器接收到客户端的http请求 针对这个请求分别创建一个代表请求的HttpServletResponse对象 一个代表响应的HttpServletResponse对象 如果要获取客户端请求过来
  • Web前端开发概述

    Web World Wide Web 全球广域网 是指一种基于互联网的信息系统 通过超文本链接将全球各地的文档 图像 视频等资源相互关联起来 并通过Web浏览器进行交互浏览和访问 Web的发展使得人们可以方便地获取和共享各种类型的信息 成为
  • Qt小项目2 图片查看器

    头文件 ifndef WIDGET H define WIDGET H include
  • JavaWeb —— AJAX

    目录 AJAX 基本介绍 A synchronous JavaScript And XML 多用在 1浏览器搜索联想 2用户注册中离开光标 校验数据的正确性 同步和异步的区别 AJAX快速入门 AJAX 基本介绍 A synchronous
  • Sping之自动注入-1

    最近终于能静下心来 一步步的学习Java Web开发 在学习的过程中 遇到太多的问题 一开始好些问题真是不知道怎么解决 在这里要非常感谢 Sping In Action 一书的作者 感谢他能写出此书 让我受益匪浅 您辛苦了 本着 相互学习
  • 解决Jenkins插件不能下载安装的问题

    安装到这一步 显示无法下载Jenkins插件 安装中升级站点 如果你还在安装过程中 遇见这个问题 你可以打开一个新的网页 输入网址http localhost 8080 pluginManager advanced 在最下面的升级站点 把其
  • 刚学JavaWeb如何创建一个简单的Servlet项目(保姆级!!!)

    idea如何创建一个简单的Servlet项目 一 准备步骤 1 创建一个工程 2 添加Web application支持 3 部署Tomcat服务器 4 向服务器中添加项目 5 向项目中导入所需要的JAR包 二 编写一个简单的Servlet
  • 外观设计模式

    外观设计模式 根据实际案例分析外观模式 Facade 示例 业务与设计模式落地案例 根据实际案例分析外观模式 Facade 案例 假设一个放电影功能 在播放电影时 需要放下窗帘 打开空调 打开播放机 打开音响 考虑用户观影时间较长时 提供暂
  • 什么是Servlet容器?

    在本文中 我写了一些关于Web服务器 Servlet容器以及它与JVM的关系的基本概念 我想表达的是 Servlet容器也仅仅不过是一个Java程序 1 什么是Web服务器 想要知道什么是Servlet容器 我们首先要知道什么是Web服务器
  • JAVA WEB 中间件为SERVLET(四)

    写一个用户登录部署到tomcat 本地 先找到一个模板 HTML代码复制到本地的项目index jsp中 这个登录模板包含一个JSP 一个JS 三个CSS等文件 这个是index jsp代码
  • jsp+servlet+ajax实现登录

    该案列使用jsp servlet ajax实现登录 页面简洁大方 弹框都是封装的插件 整体案列采用三层的模式 链接数据库方面用的是dbcp的链接池 数据库时mysql 运行效果如下图 下载地址 jsp servlet ajax实现登录案例
  • 计算机中的二进制表示-4和5

    十进制 二进制 5 00000000 00000000 00000000 00000101 4 11111111 11111111 11111111 11111100 负数的二进制如何得出 相信正数的二进制表示大家都懂 但是这个 4怎么来的
  • u盘突然乱码然后文件都不见了怎么办

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

随机推荐

  • 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