jsp页面的编码是GBK
Oracle数据库的编码是ZHS16GBK(也应该是GBK编码吧)
首先是map.get(“USERNAME“).toString(),这里返回的应该是以GBK编码的username,可是在
经过转码存入Cookie后(tomcat应该默认用ISO-8859-1编码存入Cookie的值),再转码读出的Cookie值确是““或“??”,代码如下
//数据库中取出并编码存入cookie
String un=new String(map.get("USERNAME").toString().getBytes("GBK"),"ISO-8859-1");
//转码读出
String uname=util.CookieUtils.getCookieValue("username",request);
uname=new String(uname.getBytes("ISO-8859-1"),"GBK")
out.print(uname);
Oracle数据库的编码是ZHS16GBK(也应该是GBK编码吧)
首先是map.get(“USERNAME“).toString(),这里返回的应该是以GBK编码的username,可是在
经过转码存入Cookie后(tomcat应该默认用ISO-8859-1编码存入Cookie的值),再转码读出的Cookie值确是““或“??”,代码如下
//数据库中取出并编码存入cookie
String un=new String(map.get("USERNAME").toString().getBytes("GBK"),"ISO-8859-1");
//转码读出
String uname=util.CookieUtils.getCookieValue("username",request);
uname=new String(uname.getBytes("ISO-8859-1"),"GBK")
out.print(uname);
JSP、Oracle与Tomcat编码转码问题
博客主要讲述了JSP页面编码为GBK,Oracle数据库编码为ZHS16GBK,在将数据库中以GBK编码的username经转码存入Cookie(Tomcat默认用ISO - 8859 - 1编码),再转码读出时出现值为“”或“??”的问题,并给出了相关代码。
3251

被折叠的 条评论
为什么被折叠?



