请求参数中文乱码-POST解决方法

简介: 请求参数中文乱码-POST解决方法

1、使用get和post进行数据提交都会乱码

1.1 随便写一个表单

2、提交中文发现控制台乱了码

3、 request.setCharacterEncoding("UTF-8"); //定义字符流的编码规则,这种定义方法是用来解决,POST请求方法

4、如果表单发送的是get请求就不可以了

5、GET为什么不能解决中文乱码getQueryString,用的是这个方式,并没有走流

6、浏览器会对字符串进行一些编码处理

7、编码用的是UTF-8进行的规则解决

8、6 * 8 = 48个字节位

9、

10、浏览器帮忙转换

11、浏览器主动帮你转换数据

12、Java提供的URL编码规则:

13、六个%,URL编码规则

14、 演示了一下编码规则,URL变了码,又解了码

15、他们的相同点事相同的,他们的都是底层的2进程字节

16、这个decode就是乱码数据

17、字符串转换为字节数据

六个数组转换为6个字节

18、最终转换的十进制表现形式就是-119

19、我们可以看一下,这里怎样解决:

20、使用这种方法,可以将字节数组转换为字符串

new String(bytes ""); 这里可以放入一个字符数组

21、我重新拿到这一串二进制的数据

22、解决get提交,我们先对乱码进行编码,前面需要获取到一些数据

23、通过这两行代码,解决了中文乱码问题

1. byte[] bytes = username.getBytes(StandardCharsets.IS0_8859_1);
2. 
3. //3.2 字节数组解码
4. username = new String(bytes, StandardCharsets.UTF_8);

24、如果你想一行代码解决get提交问题,可以这样

username = new String(username.getBytes(StandardCharsets.IS0_8859_1),StandardCharsets.UTF_8);

先解码,在转码,核心操作逻辑,注意这种方法也可以解决post请求方式

相关文章
|
应用服务中间件
快速解决idea启动项目报错:Unable to open debugger port(127.0.0.1:58950):java.net.SocketException“socket closed
快速解决idea启动项目报错:Unable to open debugger port(127.0.0.1:58950):java.net.SocketException“socket closed
4079 0
启动报错:java.nio.charset.MalformedInputException: Input length = 1
启动报错:java.nio.charset.MalformedInputException: Input length = 1
1469 0
|
应用服务中间件
Request请求参数----中文乱码问题
Request请求参数----中文乱码问题
|
存储 网络协议 Java
Java获取客户端IP问题:返回127.0.0.1
总结:要解决Java获取客户端IP返回127.0.0.1的问题,首先要找出原因,再采取合适的解决方案。请参考上述方案来改进代码,确保在各种网络环境下都能正确获取客户端IP地址。希望本文对您有所帮助。
764 25
|
存储 前端开发 Java
浅谈Java中文乱码浅析及解决方案
浅谈Java中文乱码浅析及解决方案
677 0
|
JSON JavaScript 应用服务中间件
关于The valid characters are defined in RFC 7230 and RFC 3986问题
建议从目前的角度出发使用第三种方式降低tomcat版本就可以了,如果从长远出发的话,建议遵循RFC 7230 and RFC 3986规范,对于非保留字字符(json格式的请求参数)做转义操作。
2831 0
关于The valid characters are defined in RFC 7230 and RFC 3986问题
|
缓存 Java
java: 警告: 源发行版 17 需要目标发行版 17,java17 无效的目标发行
java: 警告: 源发行版 17 需要目标发行版 17,java17 无效的目标发行
14620 60
|
XML Java Maven
WebService客户端调用的5种常见方式
本文介绍了在Java中创建和调用WebService的方法,包括服务端的搭建、配置类的添加以及客户端的多种调用方式(如使用JDK原生代码、wsimport命令、动态调用、代理工厂及HttpClient)。文中详细展示了每种方法的实现步骤和示例代码,强调了服务端与客户端参数实体类字段的兼容性,并推荐使用代理工厂方式进行调用。
3920 0
WebService客户端调用的5种常见方式
springboot 各种文件下载方式(最全)
springboot 各种文件下载方式(最全)
6506 0
|
SQL 关系型数据库 MySQL
使用IntelliJ IDEA连接数据库,快速创建实体类对象,自动生成get,set,toString方法以及无参有参构造器
使用IntelliJ IDEA连接数据库,快速创建实体类对象,自动生成get,set,toString方法以及无参有参构造器