日期:2014-05-18  浏览次数:20779 次

jsp页面的form通过post提交到servlet后,中文乱码问题,请问怎么解决?
在jsp   页面加了
<%@   page   language= "java "   pageEncoding= "UTF-8 "%>
<%@   page   contentType= "text/html;charset=UTF-8 "%>


servlet   doPost方法也加了
response.setContentType( "text/html;   charset=UTF-8 ");
response.setCharacterEncoding( "UTF-8 ");

中文还是出现乱码
用   new   String(filePath.getBytes( "ISO8859-1 "), "UTF-8 ")也不行,快疯了
请问一下各位有什么好的方法吗?

------解决方案--------------------
String param = new String(filePath.getBytes( "ISO-8859-1 "), "UTF-8 ");
System.out.println(param);
这样肯定没问题了。
------解决方案--------------------
我遇到过类似问题。把jsp页页的编码方式改成:GB2312:
<%@ page language="java" pageEncoding="GB2312"% > 
在servlet里不要设置编码方式了,直接用这样的方式:
String str=toChinese(toChinese(request.getParameter("name")));
public String toChinese(String string){ //转化函数
String str=string;
try{
byte[] temp=str.getBytes("ISO-8859-1");
str=new String(temp);
return str;
}catch(Exception e){
return str;
}
}
也就是GB2312和ISO-8859-1配合使用。
------解决方案--------------------
1. jsp页面保存的编码格式是不是UTF-8。
2. servlet里加request.setCharacterEncoding("UTF-8");

------解决方案--------------------
浏览器默认设置总是以utf8发送的,dopost接收数据不需要转换