小白笔记 |
您所在的位置:网站首页 › axios中文乱码问题 › 小白笔记 |
如何解决Cookie的中文乱码问题?
1. Cookie能不能存中文?
如果在Cookie中存入中文,特别容易出现问题。我们需要使用URL编码解码格式进行操作。 在Tomcat 8 之前 Cookie中不能直接存储中文数据,需要进行中文数据转码(URL编码)。 在Tomact 8 之后 Cookie支持中文数据,但是一些特殊字符是不支持的(空格),还需要使用URL编码。 2. Cookie编码解码流程图 编码:CookieDemo01.java package cn.web.servlet.cookie; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; @WebServlet("/CookieDemo05") public class CookieDemo05 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 编码前 String a = "你好,Cookie"; System.out.println(a); // 编码后 a = URLEncoder.encode(a, "utf-8"); System.out.println(a); Cookie c = new Cookie("msg", a); response.addCookie(c); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } } 解码:CookieDemo02.java package cn.web.servlet.cookie; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLDecoder; @WebServlet("/CookieDemo06") public class CookieDemo06 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取Cookie Cookie[] cookies1 = request.getCookies(); // 获取数据,遍历Cookie if (cookies1 != null) { for (Cookie cookie : cookies1) { String name = cookie.getName(); String value = cookie.getValue(); System.out.println("解码前" + name + ":" + value); System.out.println("解码后" + URLDecoder.decode(value, "utf-8")); } } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } } 结果: 你好,Cookie %E4%BD%A0%E5%A5%BD%EF%BC%8CCookie msg %E4%BD%A0%E5%A5%BD%EF%BC%8CCookie 解码后你好,Cookie参考:https://www.cnblogs.com/cuishh/articles/10489508.html 今天遇到了关于Cookie中文乱码的问题,在网上搜了搜,参考了一下大佬的博客,想分享给大家。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |