首页 > 其他分享 >Request请求参数中文乱码问题

Request请求参数中文乱码问题

时间:2023-04-20 20:35:10浏览次数:37  
标签:username 中文 request Request 乱码 import POST

Tomcat8以下的默认编码格式是ISO-8859-1 ,8版本以上Tomcat已经把默认编码格式改为UTF-8,此篇博客主要是解决Tomcat8以下版本的中文乱码问题处理。

一、Request请求参数中文乱码-POST解决方案

请求参数如果存在中文数据,则会乱码
解决方案:
POST:设置输入流的编码

req.setCharacterEncoding("UTF-8");
此方法只对Request请求POST解决方案有效。

        //1、解决乱码:POST.getReader()
        request.setCharacterEncoding("UTF-8");//设置字符输入流的编码
 
        //2、获取username
        String username = request.getParameter("username");
        System.out.println(username);

二、Request请求参数中文乱码-GET解决方案

URL编码
1、将字符串按照编码方式转为二进制
2、每个字节转为2个16进制并在前边加上%
Tomcat中文乱码产生原因:tomcat进行URL解码,tomcat8以前默认字符集ISO-8859-1
此方法可以同时解决POST和GET的中文乱码问题

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
 
/**
 * 中文乱码问题解决方案
 */
@WebServlet("/req4")
public class RequestDemo4 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
        //2、获取username
        String username = request.getParameter("username");
        System.out.println("解决乱码前"+username);
 
        //3、GET,获取参数的方式:getQueryString
        //3.1 先对乱码数据进行解码,转为字节数组
        byte[] bytes = username.getBytes(StandardCharsets.ISO_8859_1);
        //3.2 字节数组解码
        username = new String(bytes, StandardCharsets.UTF_8);
 
        System.out.println("解决乱码后" + username);
 
    }
 
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

标签:username,中文,request,Request,乱码,import,POST
From: https://www.cnblogs.com/yzx-sir/p/17336361.html

相关文章

  • 4/20 C语言判断字符串是否为回文,字符串中可以包含中文和英文
    //已知中文字符占用两个字节#include<stdio.h>#include<string.h>booljudge(char*a,int&i,int&k);intmain(){inti,k;chara[100];while(scanf("%s",a)!=EOF){i=0;k=strlen(a)-1;while......
  • Request通用方式获取请求数据
    请求参数获取方式:方法一:>Get方式:>POST方式: 思考:GET请求方式和POST请求方式区别主要是在于获取请求参数的方式不一样,是否可以提供一种统一获取请求参数的方式,从而统一doGet和doPost方法内的代码。  ......
  • xShell终端中文乱码完全解决方法
    转至:https://www.shuzhiduo.com/A/gVdnq0y85W/xShell(xShell5)以及其他终端中文乱码的原因无非有三种:(1)Linux系统的编码问题;(2)xShell终端的编码问题; (3)两端的语言编码不一致;1.Linux系统的编码问题(1)执行locale命令查看系统语言;(2)设置系统环境变量LANG为e......
  • Linux解压缩文件乱码的解决
    Linux解压缩文件乱码的解决使用unzip软件提供了-O参数(以及-I参数),可以指定编码。-OCHARSET为DOS,Windows和OS/2归档文件指定字符编码-ICHARSET为UNIX和其他归档文件指定字符编码 例子:解压缩example.zip文件到当前目录,使用归档管理器打开为乱码。example.zip为windows环......
  • 简单的看图软件:XnViewMP 中文激活版
    XnViewMP是一款跨平台的看图软件,它支持多种图片格式,包括常见的JPEG、PNG、GIF、BMP等格式,以及一些较为特殊的格式,如RAW、ICO、PSD等。以下是XnViewMP的一些主要功能:浏览图片:XnViewMP提供了一个直观、简洁的图片浏览器,用户可以轻松地查看和管理图片文件,支持快速的缩放、旋转、裁剪等......
  • 系统文件管理工具:Path Finder 中文激活版
    PathFinder是一款Mac平台上的文件管理和操作工具,提供了比Finder更丰富的功能和更直观的用户界面。它可以帮助用户更高效地浏览、复制、移动、删除和管理文件,以及进行各种高级操作。PathFinder的主要功能包括:-文件浏览:可以快速浏览文件夹、文件和磁盘,并支持多标签页和侧边栏视图......
  • DxO PhotoLab 6 for Mac(raw图片处理软件) 6.5.1.49中文直装版
    DxOPhotoLab6• 引入 DxO 广色域工作色彩空间:利用 DxO 的新色彩空间利用最新打印机和显示器的潜力。避免在高度饱和的区域进行剪辑,并确保整个工作流程的准确性。在传统色彩空间(适用于来自 DxOPhotoLab 早期版本的所有图像)和新的 DxOWideGamut 工作色彩空间(适用于在 ......
  • DRF之request
    1.request.datapost请求内的数据都放在了request.data2.request.query_parmeget请求内携带的参数都放在了request.query_parms3.request.FILESdefFILES(self):#LeavethisonealoneforbackwardscompatwithDjango'srequest.FILES#Dif......
  • SecureCRT中文显示乱码
    评:环境:SecureCRT登陆REDHAT5.3LINUX系统问题:vi编辑器编辑文件时文件中的内容中文显示乱码,但是直接使用linux系统terminal打开此文件时中文显示正常,确诊问题出现在客户端即SecureCRT的显示问题解决方法:1、修改远程linux机器的配置#vi/etc/sysconfig/i18n把LANG改成支......
  • Web 下载文件名乱码解决以及多浏览器兼容方案
    在web开发中,经常我们会遇到如导出或者下载网页这种需求,但是往往会遇到在chrome浏览器下载的文件名正常,但是到firefox,Safari上却乱码的情况,经过网上的资料多次研究,最终总结出了如下的方法,代码如下:///<summary>///浏览器下载文件,完整文件下载,不支持分片下载,为了兼容safari,下......