jsp部分:
contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>html部分:
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">过滤器:
request.setCharacterEncoding("utf-8"); 
response.setContentType("text/html;charset=utf-8");
chain.doFilter(request, response);感觉该有的都有了啊。服务器:centOS 服务器编码:en_us.utf-8在windows上测试没有问题,但布署到远程centOS上后,发现网页里静态的中文显示正常,凡是out.print输出内容,中文全部乱码,请问是怎么回事呢?

解决方案 »

  1.   

    中文后=new String(中文前.getBytes("iso8859-1"),"utf-8");
      

  2.   

    你的页面设置成了UTF-8的编码,但你从request里面拿到的数据不一定啊!
      

  3.   

    response.setCharacterEncoding("utf-8"); 
      

  4.   

    楼上正解,在语句可以写在过滤器里,也可以在JSP文件的page指令之后写。还有,在JSP文件中添加了<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,则contentType="text/html; charset=utf-8"可以省略了。
      

  5.   

    不管你怎么写,tomcat默认都给你的request用的iso-8895-1编码(除非你配置了tomcat的编码,其实就算配置了也只是对get请求起作用,post照样要自己转码)out.print之前必须转码,具体看一楼
      

  6.   

    tomcat中设置编码为utf-8。
    如果还不行,你加入日志,看看到底哪个环节出问题。
      

  7.   

    request.setCharacterEncoding("utf-8"); 
    response.setContentType("text/html;charset=utf-8");
    out对象的获取要在上两行代码后面写,试下行不
      

  8.   

    谢谢各位,问题已解决。原来是我网页中字符是转byte[]后保存进数据库,从数据库取出来后再转String。原先用的是不带参数的默认方法,现在改成带参数的"utf-8"后,就正常了。