簡體   English   中英

在Jboss上對JSF 2使用ISO-8859-1編碼

[英]Use ISO-8859-1 encoding with JSF 2 on Jboss

我有一個使用以下指令的JSP頁面:

<%@page contentType="text/html; charset=iso-8859-1" pageEncoding="iso-8859-1"%>

因此,頁面中的表單是使用ISO-8859-1編碼發送的,並且bean接收(在setXXX()方法中)根據此格式編碼的字符串。

我想將JSP“轉換”為JSF 2,它使用UTF-8作為默認值。 如何強制JSF使用ISO-8859-1,從而模擬page指令?

我在jboss 6上使用Mojarra + richfaces。

謝謝!

設置<f:view>encoding屬性。

<f:view encoding="ISO-8859-1">

但是,如今不建議再使用非Unicode編碼。 您的Web應用可能還沒有准備好統治世界,當最終用戶嘗試發送Unicode編碼的數據(例如希伯來語,西里爾字母,中文等)時,您將冒着Mojibake的風險。

我不是很了解這個問題,但這使我在使用UTF-8而不是ISO-8859-1時避免了Mojibake:

public class EncodingFilter implements Filter {

    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
        if (req.getCharacterEncoding() == null) {
            req.setCharacterEncoding("UTF-8");
        }
        chain.doFilter(req, resp);
    }

    @Override
    public void destroy() {
    }

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }
}

奇怪的是,雖然沒有指定任何編碼方式,但沒有此過濾器我得到了Mojibakes。 我還注意到init()方法中的(filterConfig.getInitParameter(“ encoding”))始終返回null。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM