需要注意的是,设置编码(post)这一句代码必须在所有的获取参数动作之前,如果出现在获取玩fname之后,不仅fname是乱码,计算是在request.setCharacterEncoding(“UTF-8”);之后的,也会是乱码
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
// post方式下,设置编码,防止中文乱码
request.setCharacterEncoding("UTF-8");
-----------------------------------------------------------------------------------------------------------
// get方式目前不需要设置编码(基于tomcat8以后)
// 如果是get请求发送的中文数据,转码稍微有点麻烦(tomcat8之前)
String fname = request.getParameter("fname");
// 1.将字符串打散成字节数组
byte[] bytes = fname.getBytes("ISO-8859-1");// 因为tomcat8之前底层的编码默认使用的编码就是ISO-8859-1
// 2.将字节数组安装设定的编码重新组装成字符串,第二个参数是你想要的编码格式
fname = new String(bytes, "UTF-8");
...
}