0

私の Web アプリケーションは現在以下を使用しています:

  • JBoss AS7
  • JSF2
  • プライムフェイス

このバグのため、JSF で UTF-8 フォームを送信するとデータが破損するため、 @WebFilterをセットアップします。

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        chain.doFilter(request, response);
    }

BalusC の提案どおり (ありがとう)。

簡単に言えば、常に正しく機能します。ファイルのアップロードにも同じフォームを使用する必要がある場合、別の問題が発生します (例: http://www.primefaces.org/showcase-labs/ui/fileUploadDnd.jsf ) 。

主な違いはこちら

 <h:form enctype="multipart/form-data">

enctype 属性がなければ、特殊な Unicode 文字は引き続き読み取り可能です。

enctype 属性を使用すると、「ciaò」ではなく「ciaò」が見つかります。

ただし、私のフィルター@WebFilter("/*") EncodingFilterは常に呼び出されます。

考えられる解決策は、JBoss のデフォルトのエンコーディングを utf-8 に設定することでしょうか? どうやってやるの?

*** * 編集 ****

JAVA_OPTS に -Dfile.encoding=UTF-8 を入れてみましたが、何もしませんでした :(( 助けてください!

4

1 に答える 1

1

これは、PrimeFacesの別のバグが原因です。説明と解決策については、この回答も参照してください。

考えられる解決策は、JBossのデフォルトエンコーディングをutf-8に設定することでしょうか?どうやってやるの?

はい。その方法はJBossのバージョンによって異なります。server.xml(バージョン6.xまで)を持っているものでは、それは要素に追加URIEncoding="UTF-8"することの問題です。(7.x以降) <Connector>を持っているものでは、それは要素に追加することの問題です。standalone.xml<property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/><system-properties>

于 2012-08-09T15:27:58.470 に答える