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接收数据不需要转换