溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中亂碼怎么解決

發(fā)布時間:2020-04-16 14:33:51 來源:億速云 閱讀:256 作者:小新 欄目:編程語言

java中亂碼怎么解決?很多人都不太了解,今天小編為了讓大家更加了解java中亂碼的解決辦法,所以給大家總結了以下內(nèi)容,一起往下看吧。

java中亂碼怎么解決

java中亂碼的解決辦法

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

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

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

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

<%@ 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目錄,就創(chuàng)建一個。

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文件,找到區(qū)塊,加入如下一行:

  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中亂碼怎么解決的詳細內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關內(nèi)容,歡迎來億速云行業(yè)資訊!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI