JSP response request中国語文字化けし


JSPを初めて勉強して、responseを発見して、requestはすべて文字化けして、私を狂わせました.いろいろ悩んだあげく、何時か気づいた.
  • Eclipseファイルエディタのデフォルト符号化はutf-8とは限らないので、開発前にデフォルト符号化を修正したほうがいいです.Eclipse-->windows->preference->General->Content Type->右側のContent TypeでText->JSPを選択してデフォルトコードをUTF-8
  • に変更
  • EclipseのworkspaceでエンコードされたEclipse-->windows->preference->General->Workspace->Text file encodingを変更してUTF-8に変更します.次に、JSPがrequestからデータを取得した後、原文がクライアントにフィードバックされます.
    String strResponse = "";
    request.setCharacterEncoding("utf-8");
    ServletInputStream in = request.getInputStream();
    BufferedReader br = new BufferedReader(
    		new InputStreamReader(in));
    String strLine = null;
    while (null != (strLine = br.readLine())) {
    	strResponse += strLine;
    }
    
    byte[] xmlData = strResponse.getBytes();
    response.setCharacterEncoding("utf-8");
    response.setContentType("text/html, charset=utf-8");
    response.setContentLength(xmlData.length);
    ServletOutputStream os = response.getOutputStream();
    os.write(xmlData);
    os.flush();
    os.close();
    out.clear();
    out = pageContext.pushBody();