2.发送ajax请求时,请使用post方式,由于AJAX默认使用utf-8的编码提交参数,因此如果不是文件上传得话,为ajax的Content-Type请求头设置"application/x-www-form-urlencoded;charset="utf-8",以此来通知服务器,客户端发送参数所使用的编码。这样,服务器端可以直接通过String word = request.getParameter("word")来获取经过转码后的参数值,省去了request.setCharacterEncoding。
浏览器和服务器之间的编码格式是不同的,要解决乱码问题有三种办法
如果是get请求,可以在tomcat根文件下找到一个server.xml文件
在其第65行后加上URIEncoding="UTF-8"
如果是post请求,可以通过request设置实体内容的解码方式为UTF-8
如:req.setCharacterEncoding("UTF-8")
如果希望get和post都可以,可以在servlet接收乱码String时,使用iso8859-1将其还原成byte再采用UTF-8将此byte转成String