中文亂碼??cookie保存中文用戶名出現“??”
顯示結果為 用戶名??
源程序如下
login.jsp
<%@?page?language="java"?import="java.util.*,java.net.*"?contentType="text/html;?utf-8"%> <%@?page?import="java.text.*"?%> <% String?path?=?request.getContextPath(); String?basePath?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"> <html> ??<head> ????<base?href="<%=basePath%>"> ???? ????<title>My?JSP?'index.jsp'?starting?page名字</title> <meta?http-equiv="pragma"?content="no-cache"> <meta?http-equiv="cache-control"?content="no-cache"> <meta?http-equiv="expires"?content="0">???? <meta?http-equiv="keywords"?content="keyword1,keyword2,keyword3"> <meta?http-equiv="description"?content="This?is?my?page"> <!-- <link?rel="stylesheet"?type="text/css"?href="styles.css"> --> ??</head> ?? ??<body> ?? <h1>用戶登錄</h1> ?? <hr> ?? <% ?? request.setCharacterEncoding("utf-8"); ?? String?username=""; ?? String?password=""; ?? Cookie[]?cookies=request.getCookies(); ?? if?(cookies!=null?&&?cookies.length>0){ ?? for?(Cookie?c:cookies){ ?? if?(c.getName().equals("username")){ ?? username?=??URLDecoder.decode(c.getValue(),"utf-8"); ?? } ?? if?(c.getName().equals("password")){ ?? password?=??URLDecoder.decode(c.getValue(),"utf-8"); ?? } ?? } ?? } ?? ?? %> ????<div?id="container"> <div?class="logo"> <a?href="#"><img?src="assets/logo.png"?alt=""?/></a> </div> <div?id="box"> <form?action="dologin.jsp"?method="post"> <table> <tr> <td>用戶名</td> <td><input?type="text"?name="username"?value="<%=username?%>"?/></td> </tr> <tr> <td>密碼</td> <td><input?type="password"?name="password"?value="<%=password?%>"?/></td> </tr> <tr> <td?colspan="2"><input?type="checkbox"?name="isUseCookie" checked="checked"?/>十天內記住我的登錄狀態(tài)</td> </tr> <tr> <td?colspan="2"?align="center"><input?type="submit"?value="登錄"?/> <input?type="reset"?value="取消"?/></td> </tr> </table> </form> </div> </div> ???? ??</body> </html>
dologin.jsp
<%@ page language="java" import="java.util.*,java.net.*" contentType="text/html; utf-8"%>
<%@ page import="java.text.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
? <head>
? ? <base href="<%=basePath%>">
? ??
? ? <title>My JSP 'index.jsp' starting page-</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0"> ? ?
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
? </head>
??
? <body>
<%
??
? request.setCharacterEncoding("utf-8");//防止中文亂碼
%>?
<%
? String[] isUseCookie=request.getParameterValues("isUseCookie");
? if (isUseCookie!=null && isUseCookie.length>0){
? String username=URLEncoder.encode(request.getParameter("username"),"utf-8");
? String password=URLEncoder.encode(request.getParameter("password"),"utf-8");
? Cookie usernameCookie=new Cookie("username",username);
? Cookie passwordCookie=new Cookie("password",password);
? usernameCookie.setMaxAge(86400);
? passwordCookie.setMaxAge(86400);
? response.addCookie(usernameCookie);
? response.addCookie(passwordCookie);
? }
? else{
? Cookie[] cookies=request.getCookies();
? if (cookies!=null && cookies.length>0){
? for (Cookie c:cookies){
? if (c.getName().equals("username") || c.getName().equals("password")){
? c.setMaxAge(0);
? response.addCookie(c);
? }
? }
? }
? }
%>
<a href="users.jsp" target="_blank">查看用戶信息</a>
?</body>
</html>
users.jsp
<%@ page language="java" import="java.util.*,java.net.*" contentType="text/html; utf-8"%>
<%@ page import="java.text.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
? <head>
? ? <base href="<%=basePath%>">
? ??
? ? <title>My JSP 'index.jsp' starting page-</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0"> ? ?
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
? </head>
??
? <body>
? <h1>用戶信息</h1>
? <hr>
? <%
? request.setCharacterEncoding("utf-8");
? String username="";
? String password="";
? Cookie[] cookies=request.getCookies();
? for (Cookie c:cookies){
? if (c.getName().equals("username")){
? username=URLDecoder.decode(c.getValue(),"utf-8");
? }
? if (c.getName().equals("password")){
? password=URLDecoder.decode(c.getValue(),"utf-8");
? }
? }
?
? %>
? <br>
? <br>
? ? 用戶名<%=username %><br>
? ? 密碼<%=password %><br>
? </body>
</html>
2017-01-05
在第一行加 pageEncoding="utf-8" 屬性 更改頁面的編碼格式試一試
2017-09-02
老鐵是怎么解決的呢?python3.6默認的就是utf8,但是cookie的name為中文仍然是亂碼.
我用的是driver.get_cookies()