02.Get请求中文乱码问题
package com.gyf.web.servlet.lesson02; import java.io.IOException; import java.util.Arrays; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /** * Get请求中文乱码问题 * 1.在tomcat8以上的版本,get请求已经不会有乱码的问题 * 2.在tomcat7以前的版本,get请求有乱码的问题 * * 原因? * 客户端传到服务器的编码是UTF-8 * 在 tomcat7中,在接收客户端的请求数据是以ISO-8859-1的形式来接收 * 在tomcat8以后,在接收客户端的请求数据就是UTF-8 */ //1.获取请求参数 String username = request.getParameter("username"); String[] hobbies =request.getParameterValues("hobby"); //byte[] buf = {23,18,23} //2.还原UTF-8编码 username = new String(username.getBytes("ISO-8859-1"), "UTF-8"); for(int i=0;i<hobbies.length;i++){ String hobby = hobbies[i]; hobby = new String(hobby.getBytes("ISO-8859-1"), "UTF-8"); //替换 hobbies[i] = hobby; } /*for(String hobby : hobbies){ System.out.println("hobby:" + hobby); }*/ System.out.println("username:" + username); System.out.println("hobbies:" + Arrays.toString(hobbies)); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?