关于Cookie存取中文出现乱码问题

Posted zmyoe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Cookie存取中文出现乱码问题相关的知识,希望对你有一定的参考价值。

Cookie默认是不能存中文的,如果你在Cookie中存了一个中文,比如Cookie cookie = new Cookie("name","小王");

那么运行的时候服务器会抛出“500 控制你的cookie的value”的错误。

那么我们就要对Cooke进行编码解码,来实现能够存取中文的问题。

要用到编码 和 解码的类:

import java.net.URLDecoder;  中 方法 URLDecoder.decode()
import java.net.URLEncoder;  中方法 URLEncoder.encode()

在servlet中的代码:

 Cookie cookie = new Cookie("username",URLEncoder.encode (“小王”,"utf-8"));
 response.addCookie(cookie);

在jsp中的代码:

<%
Cookie[] cookies = request.getCookies();
String value="";
for(int i=0;cookies!=null&&i<cookies.length;i++){
if("name".equals(cookies[i].getName())){
value=URLDecoder.decode(cookies[i].getValue(), "UTF-8");
}}%>
<%= value %>

 

以上是关于关于Cookie存取中文出现乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

[转]在ASP.NET开发中容易忽略的2个小问题 Cookie乱码存取异常 和 iframe弹框的login跳转

在asp.net中解决cookies中文乱码问题

通过Cookie来记住用户名出现乱码问题(URL编码)

关于webstorm打开现有页面出现乱码的问题?

关于Android的okHttp+webview的cookie跨域问题

关于windows下安装mysql数据库出现中文乱码的问题