租用的时代互联的虚拟主机,所以改不了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>
当不要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>
有可能是因为你eclipse设置的是用gbk方式编译的
out.print(new String(B, "GBK"));试试
1)SERVER.XML租用服务器,权限开了,好像可以改的;
2)byte B[]=request.getParameter("SSS").getBytes("ISO-8859-1");
out.print(new String(B,"UTF-8"))试试;
1)SERVER.XML租用服务器,权限开了,好像可以改的;
2)byte B[]=request.getParameter("SSS").getBytes("ISO-8859-1");
out.print(new String(B,"UTF-8"))试试;正解
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之前