在保證jsp,xml,數據庫,編輯器編碼一致的狀況下。html
1,用戶輸入中文,後臺接收到也是中文,可是保存到數據庫時亂碼,mysql
解決方法:ajax
連接數據庫的url="jdbc:mysql://localhost:3306/lr"spring
加上編碼設置,修改成:url="jdbc:mysql://localhost:3306/lr?characterEncoding=UTF-8"sql
且在配置數據庫鏈接池時加上一個配置項:useUnicode="true"數據庫
2,用戶輸入中文,get方式請求後臺獲取內容亂碼,這個通常狀況下是服務器的編碼設置的問題,服務器
解決方法:app
在服務器的server.xml配置項的:jsp
<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 "我是返回給前臺的中文字符串";
}
以上就是目前遇到的亂碼問題解決辦法,至於其餘的亂碼,大部分多是先後臺編碼不一樣意形成的,
只要一開始將顯示層,配置信息,編輯器和數據庫等各處的編碼方式設置統一了,遇到亂碼問題仍是不多的。