最近在做一個(gè)項(xiàng)目,要用到文件的上傳下載,比較了一些有類似功能的組件,最后確定了用jspbrowser,原因就是它簡(jiǎn)單且功能豐富。
當(dāng)然在這個(gè)過程中,最頭疼的就是中文亂碼問題(其實(shí)這也不是什么問題,堅(jiān)持所有文件都一個(gè)編碼,就很簡(jiǎn)單)。下面說說如果讓它 很好的支持中文,三步走:
第一步:設(shè)置java的編碼
<%@page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
第二步:在head標(biāo)簽內(nèi)設(shè)置頁面編碼
<meta http-equiv="content-type" content="text/html; charset=utf-8">
第三步:在jsp:scriptlet標(biāo)簽中設(shè)置response編碼
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
第四步:這個(gè)也是我換了很久時(shí)間才解決的上傳下載的中文亂碼問題,設(shè)置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數(shù)組轉(zhuǎn)換為字符串 !!!關(guān)鍵之所在!!!
line = new String(b, 0, read , "utf-8");
if ((index = line.indexOf('\n')) >= 0) line = line.substring(0, index - 1);
}
return line;
}
和大家分享一下,希望能給大家?guī)韼椭.吘刮乙矠榱诉@個(gè)簡(jiǎn)單的問題換了一天的時(shí)間。順便謝謝這篇文章對(duì)我的啟發(fā)http://www.learndiary.com/home/space-1-do-blog-id-2164.html
附:支持中文的jspbrowser源碼,請(qǐng)遵守開放協(xié)議。

]]>