乱码的原因是前台是utf-8方式编码,而tomcat默认是iso-8859-1方式解码的所以会乱码
post请求乱码
一般使用的话,加上过滤器,再把tomcat配置文件改了就可以了.
方式一,在web.xml中加过滤器
<filter> <filter-name>characterEncoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
方式二,设置请求头编码格式,设置完之后,直接使用就可以了
//分页查询所有公司用户信息 @RequestMapping("/findAllUserManagerMsg") @ResponseBody public BootStrapResult findAllUserManagerMsg(HttpServletRequest request, BootTableParam param, String corporateName, String iphone){ try { request.setCharacterEncoding("utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }}
只对get请求方式有效
打开tomcat安装路径,进入conf,编辑打开server.xml,然后在65行左右,找到设置端口号的地方,加上URIEncoding="utf-8",就可以了,这样就是把tomcat默认解码方式改为utf-8了
get,post请求都有效
把字符串按照iso-8859-1方式编回去再按utf-8解码
把字符串转码
@RequestMapping("/findAllUserManagerMsg") @ResponseBody public BootStrapResult findAllUserManagerMsg(BootTableParam param,String corporateName,String iphone){ try { corporateName = new String(corporateName.getBytes("iso-8859-1"),"utf-8"); iphone = new String(iphone.getBytes("iso-8859-1"),"utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } BootStrapResult result = witkeyUserService.findAllUserManagerMsg(param,corporateName,iphone); return result; }