按照书上,用JSp写了一个运用Cookie的例子,输入中文的时候Tomcat报错。参考了其他人的解决方法,说是要对中文信息先进行加码,然后才能放入Cookie中,在从Cookie中读取后。要显示时,再进行反方向的解码操作。然后修改了修改了自己的程序。
首先导入两个包:
<%@ page import="java.net.URLDecoder" %>
<%@ page import="java.net.URLEncoder" %>
放入Cookie前进行加码:
String name=request.getParameter("Name");
Cookie c=new Cookie("Name",URLEncoder.encode(name, "UTF-8"));
response.addCookie(c);
读出数据在浏览器显示时再进行解码:
i是我的Name在Cookie中的位置:
String name=URLDecoder.decode(cookies[i].getValue(),"UTF-8") ;
注意!前后两次加码和解码使用的编码要相同 ,我的代码中都是UTF-8。