//获取客户端传递过来的用户名参数值
String username = request.getParameter("username");
System.out.println("用户名:" + username);
// 先对用户名进行解码获得%E7%8E%8B%E6%8C%AF%E5%9B%BD 这样的形式
username = URLEncoder.encode(username, "ISO-8859-1");
// 再进行utf-8编码 一次获得页面上输入的文本内容
username = URLDecoder.decode(username, "UTF-8");
System.out.println("乱码解决后用户名:" + username);
2) 第二种方式 使用 String类的方法进行编解码
username = new String(username.getBytes("ISO-8859-1"), "UTF-8");
System.out.println("乱码解决后用户名:" + username);
解决乱码的代码以下:
public class Params2 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//获取客户端传递过来的用户名参数值
String username = request.getParameter("username");
System.out.println("用户名:" + username);
// 先对用户名进行编码获得%E7%8E%8B%E6%8C%AF%E5%9B%BD 这样的形式
// username = URLEncoder.encode(username, "ISO-8859-1");
//再进行utf-8解码 一次获得页面上输入的文本内容
// username = URLDecoder.decode(username, "UTF-8");
// System.out.println("乱码解决后用户名:" + username);
// 先iso-8859-1编码,再utf-8解码
username = new String(username.getBytes("ISO-8859-1"), "UTF-8");
System.out.println("乱码解决后用户名:" + username);
// 获取密码
String password = request.getParameter("password");
System.out.println("密码:" + password);
}
}