1. 程式人生 > >java後臺中文編碼問題

java後臺中文編碼問題

一、對於出現中文亂碼的可能情況:
   1、表單的get提交    2、表單的post提交    3、頁面連結傳遞中文引數    4、位址列中引數直接輸入中文提交,我是修改tomcat的字元編碼就好 對於get方式提交的亂碼,可以通過修改tomcat配置檔案來修改,對於post方式提交的亂碼可以通過設定編碼,request.setCharacterEncoding("UTF-8")方法進行編碼設定 對於位址列中拼接引數,直接輸入中文亂碼,可以修改tomcat的編碼格式:
   找到tomcat的安裝地址:修改tomcat下的conf/server.xml檔案,找到如下程式碼:
      <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
這段程式碼規定了Tomcat監聽HTTP請求的埠號等資訊。可以在這裡新增一個屬性:URIEncoding,將該屬性值設定為UTF-8,即可讓Tomcat(預設ISO-8859-1編碼)以UTF-8的編碼處理get請求。更改後的程式碼如下所示: <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
              URIEncoding="UTF-8"
               redirectPort="8443" />
二、如果是呼叫介面時,返回的json字串中文亂碼,可以修改@RquestMapping中的編碼格式 @RequestMapping
(value = "/getOrderTrend",method = RequestMethod. GET,produces = "text/json;charset=UTF-8") RequestMapping.POST為post提交方式,直接再谷歌瀏覽器上呼叫介面,用的是get方法,可以選用介面呼叫工具Postman,再IDEA中如果修改各種編碼都沒用,可以嘗試重新部署專案,有可能是專案部署時存在快取,我是直接清除快取也沒用,重新部署一遍,主要是把Artifacts中的war包重新生成,然後tomcat配置中的Artifacts重新部署 三、如果啟動tomcat的時候,控制檯中文亂碼,可以修改IDEA中的tomcat配置
或者:配置tomcat中的Startup/Connection 在執行/除錯 配置對話方塊的Startup/Connection面板中, 勾選Pass environment variables. 並新增一個environment variable, Name填  JAVA_TOOL_OPTIONS, Value填  -Dfile.encoding=UTF-8.

四、檢視應用的web.xml預設編碼是否是"UTF-8"以下是後端強制轉碼配置 複製程式碼
<filter>
        <filter-name>Set Character Encoding</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>Set Character Encoding</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>