小白笔记

您所在的位置:网站首页 axios中文乱码问题 小白笔记

小白笔记

2023-08-04 12:36| 来源: 网络整理| 查看: 265

如何解决Cookie的中文乱码问题? 1. Cookie能不能存中文?

​ 如果在Cookie中存入中文,特别容易出现问题。我们需要使用URL编码解码格式进行操作。

​ 在Tomcat 8 之前 Cookie中不能直接存储中文数据,需要进行中文数据转码(URL编码)。

​ 在Tomact 8 之后 Cookie支持中文数据,但是一些特殊字符是不支持的(空格),还需要使用URL编码。

2. Cookie编码解码流程图

在这里插入图片描述

3. 解决 // 编码 // 格式: URLEncoder.encode("中文/特殊字符", "编码表"); URLEncoder.encode("你好,Cookie", "utf-8"); // 编码后:%E4%BD%A0%E5%A5%BD%EF%BC%8CCookie // 解码 // 格式: URLDecoder.decode("解码内容", "编码表") URLDecoder.decode("%E4%BD%A0%E5%A5%BD%EF%BC%8CCookie", "utf-8"); // 解码后:你好,Cookie 4. 案例

​ 编码: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