本文將介紹一種Java Web/Api 開發常見的亂碼問題。html
前提摘要:在學習Java Web的過程當中,亂碼問題是常常遇到的,不管是頁面亂碼仍是數據庫亂碼。本文將羅列筆者在開發過程當中經常遇到幾種亂碼場景。java
####1、JSP頁面亂碼 由於網頁默認的編碼格式爲ISO-8859-1
,該編碼格式不支持漢字,因此在網頁上顯示爲亂碼???.mysql
#####解決方案web
在文件頂部添加header上添加ajax
<pre> <%@ page contentType="text/html;charset=UTF-8" language="java" %> </pre>spring
####2、ajax請求時 request.getParams亂碼sql
在你的tomcat server.xml中配置數據庫
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEconding="UTF-8" useBodyEncodingForURI="true" redirectPort="8443" />
</pre>json
即添加URIEconding="UTF-8" useBodyEncodingForURI="true"
segmentfault
####3、ajax請求時 response出去爲亂碼
在使用Spring MVC時 須在web.xml 配置
<filter> <filter-name>encodingFilter</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>
mvc註釋 RequestMapping 聲明 增長utf-8聲明如 @RequestMapping(method = RequestMethod.POST, produces = "application/json; charset=utf-8")
若是是普通的servlet時,則須代碼編碼以後輸出
response.setContentType("text/html;charset=UTF-8");
####3、文件亂碼
常常在拿到別人的工程文件時,因爲他不一樣的編碼例如GBK之類的編碼,須要在IDE中將文件編碼統一成UTF-8 便可.
window平臺下,能夠實用notepad++進行編轉化替換便可。
####4、終端亂碼
若是是 System.out.println 打印顯示亂碼 則 VM options 裏 添加 -Dfile.encoding=UTF-8
參數
####5、數據庫亂碼
jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8
####6、emoji亂碼支持
下期預告(9月5號):Java郵件發送實踐 - 企業級營銷實踐必備。
歡迎你們關注個人微博,或者在文章下方 郵件訂閱。菜鳥筆記 下週不見不散