」;然後複製「TOMCAT」安裝目錄到「webapp/filters」下即可。"/> 」;然後複製「TOMCAT」安裝目錄到「webapp/filters」下即可。">

首頁 >Java >Java基礎 >java中亂碼的解決辦法

java中亂碼的解決辦法

藏色散人
藏色散人原創
2020-04-11 09:20:472970瀏覽

java中亂碼的解決辦法

java中亂碼的解決方案

對於Java,由於預設的編碼方式是UNICODE,所以用中文也易出問題,常見的解決是:

String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);

1、utf8解決JSP中文亂碼問題

推薦教學:《java學習

#一般說來在每個頁面的開始處,加入:

<%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>

◆charset=UTF-8的功能是指定JSP向客戶端輸出的編碼方式為「UTF-8」;

◆pageEncoding="UTF-8",為了讓JSP引擎能正確地解碼含有中文字元的JSP頁面,這在LINUX中很有效;

◆request.setCharacterEncoding("UTF-8");是對請求進行了中文編碼。

有時,這樣仍無法解決問題,還需要這樣處理一下:

String msg = request.getParameter("message");  String str=new String(msg.getBytes("ISO-8859-1"),"UTF-8");  out.println(st);

2、Tomcat 5.5中文亂碼

只要把%TOMCAT安裝目錄%/   webapps\servlets -examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class檔案拷貝到你的webapp目錄/filters下,如果沒有filters目錄,就建立一個。

2)在你的web.xml裡加入以下幾行:

<filter>   
<filter-name>Set   Character   Encoding</filter-name>   
<filter-class>filters.SetCharacterEncodingFilter</filter-class>   
<init-param>   
<param-name>encoding</param-name>   
<param-value>GBK</param-value>   
</init-param>   
</filter>   
<filter-mapping>   
<filter-name>Set   Character   Encoding</filter-name>   
<url-pattern>/*</url-pattern>   
</filter-mapping>

3)完成

2、get方式的解決方法

1 )開啟tomcat的server.xml文件,找到區塊,加入如下一行:  

  URIEncoding=”GBK”

完整的應如下:###
<connector     
  port="80"   maxThreads="150"   minSpareThreads="25"   maxSpareThreads="75"   
  enableLookups="false"   redirectPort="8443"   acceptCount="100"   
  debug="0"   connectionTimeout="20000"     
  disableUploadTimeout="true"     
  URIEncoding="GBK"   
  />
###2)重啟tomcat,一切OK。 ######3、xmlHttpRequest中文問題######頁面jsp用的GBK編碼######程式碼:###
<%@ page contentType="text/html; charset=GBK"%>
###javascript部分#######程式碼:## #
function addFracasReport() {   
    var url="controler?actionId=0_06_03_01&actionFlag=0010";   
    var urlmsg="&reportId="+fracasReport1.textReportId.value;  //故障报告表编号   
           
    var xmlHttp=Common.createXMLHttpRequest();   
    xmlHttp.onreadystatechange = Common.getReadyStateHandler(xmlHttp, 
       eval("turnAnalyPage"));   
    xmlHttp.open("POST",url,true);   
    xmlHttp.setRequestHeader( " Content-Type " , " 
       application/x-www-form-urlencoded);   
    xmlHttp.send(urlmsg);          
}
#p#
###後台java中獲得的reportId是亂碼,不知道該怎麼轉,主要是不知道xmlHttp.send(urlmsg);以後是什麼編碼?在後面用java來轉,試了幾種,都沒有成功,其中有:#######程式碼:###
public static String UTF_8ToGBK(String str) {   
        try {   
            return new String(str.getBytes("UTF-8"), "GBK");   
        } catch (Exception ex) {   
            return null;   
        }   
    }   
       
    public static String UTF8ToGBK(String str) {   
        try {   
            return new String(str.getBytes("UTF-16BE"), "GBK");   
        } catch (Exception ex) {   
            return null;   
        }   
    }   
       
    public static String GBK(String str) {   
        try {   
            return new String(str.getBytes("GBK"),"GBK");   
        } catch (Exception ex) {   
            return null;   
        }   
    }   
         public static String getStr(String str) {   
        try {   
            String temp_p = str;   
            String temp = new String(temp_p.getBytes("ISO8859_1"), "GBK");   
            temp = sqlStrchop(temp);   
            return temp;   
        } catch (Exception e) {   
            return null;   
        }   
    }

以上是java中亂碼的解決辦法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn