租用的时代互联的虚拟主机,所以改不了tomcat 的server.xml文件,
当不要contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" 的时候,out.print(request.getParameter("SSS"));可以输出正常的中文,
但是 “中草药” 这些静态的中文却变成乱码了。反之“中草药”可以正常显示,但是out.print(request.getParameter("SSS")); 就输出乱码。任上说的什么过滤器也弄过了,
byte B[]=request.getParameter("SSS").getBytes("UTF-8");代码转换也用过了,还是乱码,请问还有什么办法吗??
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
if(request.getParameter("SSS")!=null){
byte B[]=request.getParameter("SSS").getBytes("ISO-8859-1");
out.print(new String(B));
}
out.print(request.getParameter("SSS"));request.setCharacterEncoding("UTF-8");
if(request.getParameter("SSS")!=null){
byte B[]=request.getParameter("SSS").getBytes("ISO-8859-1");
out.print(new String(B));
}
out.print(request.getParameter("SSS")); %>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head>
<html>
<body>
<form method="POST">
中草药:<input type="text" name="SSS">

<input type="submit">
</form>
</body>
</html>

解决方案 »

  1.   

    tomcat的server.xml里URIEncoding useBodyEncoding
      

  2.   

    pageEncoding="UTF-8"  改为gbk
      

  3.   

    这个是Tomcat固有问题,要是改不了就是解决不了了。
      

  4.   

    你这个是javascript的输出乱码问题,在设置中修改一下存储字符编码,然后所有输入输出都统一编码试试
      

  5.   

    你把你所有的utf-8都改为gbk试试呢
    有可能是因为你eclipse设置的是用gbk方式编译的
      

  6.   

    out.print(new String(B, "UTF-8"));或 
    out.print(new String(B, "GBK"));试试
      

  7.   

    乱码问题最好的解决方法是:统一编码(UTF-8/GBK);
    1)SERVER.XML租用服务器,权限开了,好像可以改的;
    2)byte B[]=request.getParameter("SSS").getBytes("ISO-8859-1");
    out.print(new String(B,"UTF-8"))试试;
      

  8.   

    乱码问题最好的解决方法是:统一编码(UTF-8/GBK);
    1)SERVER.XML租用服务器,权限开了,好像可以改的;
    2)byte B[]=request.getParameter("SSS").getBytes("ISO-8859-1");
    out.print(new String(B,"UTF-8"))试试;正解
      

  9.   

    乱码问题:客户端提交中文,servlet中获取的是乱码:
      a:如果是get方式,在tomcat中,在conf/server.xml文件中8080端口的connector元素增加URIEncoding="utf-8"
      b:如果是post方式,在servlet中,request.setcharactorEncoding("utf-8");放在request.getparameter之前
      servlet相应中文,客户端显示乱码:response.setCharactorEncoding("utf-8");该代码要放在
    response.getWriter之前
      

  10.   

    乱码问题,经典问题,看看这个:http://blog.csdn.net/wula0010/article/details/3942321