2012-11-14 18 views
1

我目前從法在一類我的JSP頁面中返回一個UTF-8編碼字符串,但是雖然字符串的大多數角色都ok問題出現與有infrontation如ό字母所有這些都被編碼爲?UTF-8編碼的JSP

這個問題怎麼解決?

我必須按順序由JSP頁面所需要的正確的指令有它的內容編碼爲UTF-8

我的字符串的內容是希臘

回答

2

有些我是如何做到以下幾點:

我使用Eclipse IDE,並設置窗口>首選項>常規>工作空間>文本文件編碼成UTF-8。

之後,我所有的編碼問題,神奇地消失了!!!!!

有人可以解釋一下嗎?

+0

我猜你直接在你的JSP中有文本,並且你的JSP文件沒有保存在UTF8中(例如它是在iso-8859-1中),對嗎?編碼保存文件的http響應和編碼是兩件不同的事情。 – Walid

2

你使用這個指令<%@page contentType="text/html;charset=UTF-8"%>

此功能可設置content-type爲UTF-8和你pageEncoding

+0

是的,我已經將這個... – obelix

+0

是否有這個問題可以通過我使用Tomcat服務器引起的可能性? – obelix

3

我有同樣的問題,我在web.xml從春天加入CharacterEncodingFilter固定的:

<filter> 
    <filter-name>SetCharacterEncodingFilter</filter-name> 
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
    <init-param> 
     <param-name>encoding</param-name> 
     <param-value>UTF8</param-value> 
    </init-param> 
    <init-param> 
     <param-name>forceEncoding</param-name> 
     <param-value>true</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>SetCharacterEncodingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

你可以用它即使你不在項目中使用spring(只需下載spring-web-xxx.jar)。

或者你可以創建自己的過濾器,做這樣的:

request.setCharacterEncoding("UTF8"); 
response.setCharacterEncoding("UTF8"); 

您可以找到org.springframework.web.filter.CharacterEncodingFilter對grepcode.com的源代碼,例如,看到什麼它確實如此。