一般来说,java的乱码其实很好解决,乱一般是没有显式指定编码。你这个问题,相信在jsp、servlet或sockect发收数据的时候没有指明接/收的编码在jsp和servlet中可以使用request.setCharacterEncoding(UTF-8)接收而如果你的聊天室直接用的是socket,则用OutputStreamReader/InputStreamReader包Socket的OutputStream或InputStream,两边用相同的编码(GBK),不会不成功的
解决方案 »
- webshpere 设置session超时问题?
- struts2 autocomplete
- ibatis如何判断是否存在where
- 关于J2EE使用注册问题
- 如何融合 Hibernte 的 uuid.hex 和 SQL Server 的newid()
- 没学java,能不能学java测试?
- 求助,用java怎么连接IBM上的as400上的db2?
- 引用javax.websocket.server.serverendpoint需要导入什么jar包
- spring中在ModelAndView对应的jsp页面中用OutputStream输出图像的问题
- 在struts项目.class文件改了,但运行时结果没变
- ***多层C/S如何作到权限控制???用Session Bean,还是Java Beans……有意义的发言均有分!!!
- tomcat里调用BORLAND APP SERVER 里部署的EJB出错:Name PeasantryBizEJB is not bound in this Context
第一:
1:在jsp页面加入:
<%@ page contentType="text/html; charset=gb2312" %>
2:在servlet里面:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=gb2312");//这是重要的
3:上面的如果在不行就用如下的方法在数据入库前进行调用:
public static String UnicodeToChinese(String s){
try{
if(s==null ¦ ¦s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("ISO8859_1"),"gb2312");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}
public static String ChineseToUnicode(String s){
try{
if(s==null ¦ ¦s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("gb2312"),"ISO8859_1");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}