」;然後複製「TOMCAT」安裝目錄到「webapp/filters」下即可。"/> 」;然後複製「TOMCAT」安裝目錄到「webapp/filters」下即可。">
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中文網其他相關文章!