2014-03-03 56 views
0

我想爲我的JSP/servlet頁面在Tomcat 7中設置正確的編碼。雖然,我必須成功。我從這個stackexchange線程給出的建議做了一些嘗試:Character encoding JSP -displayed wrong in JSP but not in URL: "á » á é » é",但他們沒有工作。 奇怪的事實在於,如果我讓頁面「按原樣」瀏覽器將它們識別爲具有編碼Windows-CP 1252,並且當我更改爲UTF-8時,文本將正確顯示。但是,使用過濾器和其他機制,瀏覽器將編碼設置爲UTF-8,並且不能正確顯示它。事實上對於後者,如果我改變編碼,結果至少是可怕的。錯誤的編碼在Java servlet(tomcat)

回答

0

也許不是JSP問題。你是否嘗試過直接在頁面中做這件事?

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
... 
</head> 

另外,儘量保存網頁中UTF-8格式

1

我得到了它現在。在頁面JSP中,我將第一條指令放在:

<%@ page pageEncoding="utf-8" %> 

這解決了所有問題。其他可能性,如把response.setCharacterEncoding(「UTF-8」)作爲第一條指令不起作用。

關於servlet的我需要設置字符編碼之前獲得PrintWriter對象:

response.setContentType("text/html"); 
response.setCharacterEncoding("UTF-8"); 
PrintWriter out = response.getWriter(); 

這些事情已經解決了我奇怪的字符問題。總結:問題是從JSP/servlet發出的響應沒有指出它本身是用UTF-8

+0

編碼的 – Szundi