一、服务器对于request中的参数解码
首先应该用setCharacterEncoding将编码格式设置为“UTF-8”
request.setCharacterEncoding("UTF-8");
1、使用post提交表单,解析方式
如果使用的是post方式提交,则对于中文来说可以直接通过getParameter()来获取所传的值
String username = request.getParameter("username");
String password = request.getParameter("password");
2、使用get提交表单,解析方式
由于get方式所传的值是在url中直接携带的,所以request.setCharacterEncoding(“UTF-8”);
并不起作用。因为request并没有所传的值,且tomacat7.0及之前的版本的默认编码格式为
ISO-8859-1,所以需要通过以下代码来进行解码。(如果是tomacat8.0或以上则不需要,因为tomcat8.0之后默认编码格式已经改为了“UTF-8”)
String username = new String(request.getParameter("username").
getBytes("ISO-8859-1"),"UTF-8");
二、服务器对于response中的参数解码
首先,对于中文的解码应该设置response的contentType,给浏览器指明他应该用何种方式来进行解码。
response.setContentType("text/html;charset=UTF-8");
其次,有两种方式给浏览器直接返回中文信息的方式。
第二种,要在getBytes中传入所对应的解码格式,否则会使用操作系统的编码格式GBK。
response.getWriter().write("你登陆成功!");
response.getOutputStream().write("已登录成功".getBytes("UTF-8"));