jforum-cookie中文乱码问题

最近在整合jforum-2.1.8 SSO时发现在注册中文用户时到论坛页面显示的是乱码。在看了它的源码后发现原来问题出在COOKIES上。于是一番折腾终于把问题解决了。下面就这个问题和大家分享下以免以后有朋友遇到相同的问题也可以做个参考。在net.jforum包下有ControllerUtils类。这个类就有个方法getCookie()可以获得另一个系统传过来的COOKIE。我们要想让中文注册用户不显示乱码,在传入COOKIE时就要对它进行编码,其实这步很简单就一句代码。主要是要明白原理。原理就不熬述了。网上有很多这类问题的解决方法。我用JSP+Servlet做了个简单的登录进行测试。在servlet里加上这句代码     Cookie cookie = new Cookie("jforumSSOCookieNameUser", java.net.URLEncoder.encode(登录用户名, "utf-8"));

这样就对COOKIE进行了强制编码,如果在进行强制编码从前台传入servlet的中文是乱码这样也好解决如果使用的是TOMCAT的话就用这句代码就可以解决  String username =new String(request.getParameter("username").getBytes("ISO-8859-1"),"utf-8");因为TOMCAT使用的是ISO的编码格式。好了。这样就完成了第一步。然后我们在取COOKIE的时候就要对它进行解码。我是在ControllerUtils类的  getCookie()方法里进行解码的java.net.URLDecoder.decode(c.getValue(),"utf-8");

 

你可能感兴趣的:(tomcat,jsp,.net,servlet,SSO)