2014-09-10 42 views
3

我有一個使用JSP和Servlet登錄並註冊動態Web項目。如何在使用RequestDispatcher時修復字符集編碼包含html文件?

register.htm AREADY有:
<meta charset="UTF-8">

註冊servlet有:

`response.setContentType("text/html; charset=UTF-8"); 
    `response.setCharacterEncoding("UTF-8");` 
    `response.setHeader("Cache-Control", "no-cache");` 
    `request.setCharacterEncoding("UTF-8");` 

當用戶提交(以register.html),如果它有一些錯誤,註冊Servlet的事:

RequestDispatcher rd = getServletContext().getRequestDispatcher("/register.html"); PrintWriter out = response.getWriter(); out.println("<font color=red>" + errorsMsg + "</font>"); rd.include(request, response);
然後,瀏覽器顯示的內容不是UTF8。 (像AA»ƒÄ'ăngkýTA我khoảN,bạncầnÃ'»「NGå½VA»>我
我怎樣才能解決這個問題?

+0

這個字符串從哪裏來?在代碼或數據庫中進行硬編碼? – cy3er 2014-09-10 09:48:18

+0

它來自register.html。 – storky 2014-09-10 09:52:48

回答

0

你有你開始寫入響應的輸出流或作家之前設置所有HTTP頭

當你開始寫的作家,你必須先寫<HTML><HEAD>標籤,但在你的例子你寫<font>

PrintWriter out = response.getWriter(); 
out.println("<font color=red>" + errorsMsg + "</font>"); 

當你打電話rd.include(request, response);你已經寫了一些東西到輸出,這不是你想要的。

+0

errorsMsg顯示完美,但文本來自register.html是壞 – storky 2014-09-10 09:55:46

+0

@storky檢查您的源文件的編碼也是 – cy3er 2014-09-10 10:13:36

+0

@ cy3er它是UTF8編碼! – storky 2014-09-10 10:19:47

相關問題