Java常見的亂碼問題

1、JSP頁面亂碼

由於網頁默認的編碼格式爲ISO-8859-1,該編碼格式不支持漢字,因此在網頁上顯示爲亂碼???.html

解決方案

在文件頂部添加header上添加java

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

2、ajax請求時 request.getParams亂碼

在你的tomcat server.xml中配置mysql

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000" URIEconding="UTF-8" useBodyEncodingForURI="true"
               redirectPort="8443" />

即添加URIEconding="UTF-8" useBodyEncodingForURI="true"web

3、ajax請求時 response出去爲亂碼

在使用Spring MVC時 須在web.xml 配置ajax

<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")spring

若是是普通的servlet時,則須代碼編碼以後輸出sql

response.setContentType("text/html;charset=UTF-8");

3、文件亂碼

常常在拿到別人的工程文件時,因爲他不一樣的編碼例如GBK之類的編碼,須要在IDE中將文件編碼統一成UTF-8 便可.數據庫

window平臺下,能夠實用notepad++進行編轉化替換便可。json

4、終端亂碼

若是是 System.out.println 打印顯示亂碼 則 VM options 裏 添加 -Dfile.encoding=UTF-8 參數tomcat

5、數據庫亂碼

  • jdbc連接utf-8聲明

jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8

  • 新建數據庫時,選擇utf-8/utf-8mb4編碼

6、emoji亂碼支持

  • 新建數據庫選擇utf-8mb4

  • 數據庫的字符集配置 

  • mysql-connector-java 版本升級至 5.1.22

相關文章
相關標籤/搜索