中文亂碼??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"?/>十天內記住我的登錄狀態</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()