最近在做一個項目,要用到文件的上傳下載,比較了一些有類似功能的組件,最后確定了用jspbrowser,原因就是它簡單且功能豐富。
當然在這個過程中,最頭疼的就是中文亂碼問題(其實這也不是什么問題,堅持所有文件都一個編碼,就很簡單)。下面說說如果讓它 很好的支持中文,三步走:
第一步:設置java的編碼
<%@page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
第二步:在head標簽內設置頁面編碼
<meta http-equiv="content-type" content="text/html; charset=utf-8">
第三步:在jsp:scriptlet標簽中設置response編碼
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
第四步:這個也是我換了很久時間才解決的上傳下載的中文亂碼問題,設置ServletInputStream編碼
/** Convenience method to read HTTP header lines */
private synchronized String getLine(ServletInputStream sis) throws IOException {
byte b[] = new byte[1024];
int read = sis.readLine(b, 0, b.length), index;
String line = null;
if (read != -1) {
//TODO 用給定的編碼方式把給定的byte數組轉換為字符串 !!!關鍵之所在!!!
line = new String(b, 0, read , "utf-8");
if ((index = line.indexOf('\n')) >= 0) line = line.substring(0, index - 1);
}
return line;
}
和大家分享一下,希望能給大家帶來幫助。畢竟我也為了這個簡單的問題換了一天的時間。順便謝謝這篇文章對我的啟發http://www.learndiary.com/home/space-1-do-blog-id-2164.html
附:支持中文的jspbrowser源碼,請遵守開放協議。

]]>