最近看到很多論壇上說,無非就是以下的三點:
一,在靜態網頁中,添加 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/>。但問題是這僅僅修改了當html檔案被編譯後傳遞給瀏覽器的內容編碼,仍然沒有修改其頁編碼,很多情況下,這不能解決問題;
二,在jsp檔案中添加<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>.事實證明,當jsp
include html時,jsp的漢字並不會亂碼,顯然這也是行不通的。
三,修改tomcat xml檔案。事實證明tomcat7.0不支援這個方法。
筆者有以下有幾個個人認為能從根本上解決問題的方法,希望讀者借鑒。
一,從根本上解決頁編碼問題。將已經寫好的html檔案或jsp檔案用txt開啟。點擊另存新檔,選擇編碼格式為UTF-8,確定。這時,你的問題可能已經解決了。(雖然對於大項目而言,這種方法實在不可取,但是對於初學者而言,能起到協助作用)。
二,在擷取客戶提交資訊,也就是說form的method是post時,在很多情況下會出現request得到的漢字內容會亂碼,這時,我們首先將擷取到的字串用UTF-8編碼,然後存放到一個位元組數組中,再將這個數組轉化為字串。例如:
String username=request.getParameter("username");
byte busername[]=username.getBytes("UTF-8");
username=new String(busername);
三,每次調用一次下面的方法即可。
<%!
public String toChinese(String str) throws java.io.UnsupportedEncodingException
{
byte b[]=str.getBytes("UTF-8");
str=new String(b);
return str;
}
%>
(具體內容請參加張銀鶴等編著的《jsp動態網站開發》)