在保证jsp,xml,数据库,编辑器编码一致的情况下。
1,用户输入中文,后台接收到也是中文,但是保存到数据库时乱码,
解决方法:
链接数据库的url="jdbc:mysql://localhost:3306/lr"
加上编码设置,修改为:url="jdbc:mysql://localhost:3306/lr?characterEncoding=UTF-8"
且在配置数据库连接池时加上一个配置项:useUnicode="true"
2,用户输入中文,get方式请求后台获取内容乱码,这个一般情况下是服务器的编码设置的问题,
解决方法:
在服务器的server.xml配置项的:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />
加上编码配置,修改为:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>
3,ajax后台返回到前台时中文乱码,
解决方法:
在spring MVC的Controller:
@RequestMapping(value = "xxxx", method = RequestMethod.GET)
public @ResponseBody String a(@RequestParam("email") String email) {
return "我是返回给前台的中文字符串";
}
加上produces = "text/html;charset=UTF-8",修改为:
@RequestMapping(value = "xxxx", method = RequestMethod.GET, produces = "text/html;charset=UTF-8")
public @ResponseBody String a(@RequestParam("email") String email) {
return "我是返回给前台的中文字符串";
}
以上就是目前遇到的乱码问题解决办法,至于其他的乱码,大部分可能是前后台编码不同意造成的,
只要一开始将显示层,配置信息,编辑器和数据库等各处的编码方式设置统一了,遇到乱码问题还是很少的。